Advertisement
a53

k_s_t

a53
Jul 25th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #define mod 666013
  4. int ans[ 1010 ][ 1010 ], use[ 1010 ][ 1010 ], n, k;
  5.  
  6. int solve( int a, int b )
  7. {
  8. if( use[ a ][ b ] )
  9. return ans[ a ][ b ];
  10. use[ a ][ b ] = 1;
  11. if( a >= k and b == 0 )
  12. {
  13. ans[ a ][ b ] = solve( a , k );
  14. return ans[ a ][ b ];
  15. }
  16. if( a < k and b == 0 )
  17. {
  18. ans[ a ][ b ] = 1;
  19. return ans[ a ][ b ];
  20. }
  21. if( a < b )
  22. {
  23. ans[ a ][ b ] = 0;
  24. return ans[ a ][ b ];
  25. }
  26. if( b % 2 == 1 )
  27. {
  28. for( int i = 0 ; i < a ; i++ )
  29. ans[ a ][ b ] = ( ans[ a ][ b ] + 1ll * solve( i , b / 2 ) * solve( a - i - 1 , b / 2 ) ) % mod;
  30. return ans[ a ][ b ];
  31. }
  32. else
  33. {
  34. for( int i = 0 ; i < a ; i++ )
  35. ans[ a ][ b ] = ( ans[ a ][ b ] + 1ll * solve( i , 0 ) * solve( a - i - 1 , b - 1 ) ) % mod;
  36. return ans[ a ][ b ];
  37. }
  38. }
  39.  
  40. int main()
  41. {
  42. cin>>n>>k;
  43. cout<<solve(n,k);
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement