1 solutions

  • 0
    @ 2025-11-5 18:06:10

    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