1 solutions
-
0
Java :
import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger dp[][] = new BigInteger[309][309]; public static void prep() { for(int i=1;i<=300;i++) for(int j=1;j<=300;j++) dp[i][j]=BigInteger.valueOf(-1); for(int i=1;i<=300;i++) { dp[0][i]=dp[1][i]=dp[i][1]=BigInteger.valueOf(1); } for(int i=1;i<=300;i++){ for(int j=1;j<=300;j++) { if(dp[i][j].equals(BigInteger.valueOf(-1))) { dp[i][j]=dp[i][j-1]; if(i>=j) { dp[i][j]=dp[i][j].add(dp[i-j][j]); } } } } } public static void main(String[] args) { prep(); Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int m,n; m=sc.nextInt(); n=sc.nextInt(); System.out.println(dp[m][n]); } } }
- 1
Information
- ID
- 18781
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- (None)
- # Submissions
- 0
- Accepted
- 0
- Uploaded By