Advertisement
add1ctus

Расипувач на забава 4

Nov 27th, 2015
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.81 KB | None | 0 0
  1. import java.math.BigInteger;
  2. import java.util.Scanner;
  3.  
  4.    
  5. public class Main {
  6.     public static void main(String[] args) {
  7.         Scanner in = new Scanner(System.in);
  8.            
  9.         int N = in.nextInt();
  10.         int K = in.nextInt();
  11.          
  12.         BigInteger[] DP = new BigInteger[N+1];
  13.         BigInteger dijagonala = new BigInteger("1");
  14.         DP[0] = new BigInteger("0");
  15.         for(int checked = K - 1 ; checked >= 0 ; checked--)
  16.         {
  17.             for(int good = Math.min(checked,N-1) ; good >= checked - good ; good--)
  18.             {
  19.                 int bad = checked - good;
  20.                 if(DP[bad] == null)
  21.                     DP[bad] = new BigInteger("0");
  22.                 if(DP[bad+1] == null)
  23.                     DP[bad+1] = new BigInteger("0");
  24.                 if(good == bad)
  25.                     DP[bad] = DP[bad].multiply(new BigInteger("2")).add(dijagonala);
  26.                 else if(good == N-1)
  27.                     DP[bad] = DP[bad+1].multiply(new BigInteger("2"));
  28.                 else if(bad == K-N)
  29.                     DP[bad] = DP[bad].multiply(new BigInteger("2"));
  30.                 else
  31.                     DP[bad] = DP[bad].add(DP[bad+1]).add(dijagonala);
  32.             }
  33.             dijagonala = dijagonala.multiply(new BigInteger("2"));
  34.         }
  35.          
  36.         while(dijagonala.mod(new BigInteger("2")).equals(new BigInteger("0"))
  37.                 && DP[0].mod(new BigInteger("2")).equals(new BigInteger("0")))
  38.         {
  39.             dijagonala = dijagonala.divide(new BigInteger("2"));
  40.             DP[0] = DP[0].divide(new BigInteger("2"));
  41.         }
  42.          
  43.         dijagonala = dijagonala.divide(new BigInteger("2"));
  44.          
  45.         System.out.println(DP[0]);
  46.         System.out.println(dijagonala);
  47.              
  48.            
  49.         in.close();
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement