Plabon_dutta

UVA 12063

Nov 20th, 2021 (edited)
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  5. #define get_lost_idiot return 0
  6. #define nl '\n'
  7.  
  8. ll dp[72][70][110];
  9. ll n,k;
  10.  
  11. ll solve(ll one,ll zero,ll r)
  12. {
  13.     if((one+zero)==n)
  14.     {
  15.         if(one==zero && r==0) return 1;
  16.         return 0;
  17.     }
  18.    
  19.     if(dp[one][zero][r]!=-1) return dp[one][zero][r];
  20.  
  21.     return dp[one][zero][r]=solve(one+1,zero,((r*2)+1)%k)+solve(one,zero+1,(r*2)%k);
  22. }
  23.  
  24. int main()
  25. {
  26.     ios_base::sync_with_stdio(0);
  27.     cin.tie(0);
  28.     cout.tie(0);
  29.  
  30.  
  31.  
  32.     test
  33.     {
  34.         ll i,j,l;
  35.  
  36.         cin>>n>>k;
  37.  
  38.         cout<<"Case "<<cs<<": ";
  39.  
  40.         if(n%2==1 || k==0)
  41.         {
  42.             cout<<0<<nl;
  43.         }
  44.         else
  45.         {
  46.             memset(dp,-1,sizeof dp);
  47.  
  48.             cout<<solve(1,0,1%k)<<nl;
  49.         }
  50.     }
  51.  
  52.     get_lost_idiot;
  53. }
Add Comment
Please, Sign In to add comment