Advertisement
Guest User

Untitled

a guest
Mar 15th, 2015
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll              long long
  6. #define dd              double
  7. #define pb              push_back
  8. #define mp              make_pair
  9. #define X               first
  10. #define Y               second
  11. #define forn( i, n )    for( ll i = 0; i < (ll) (n); i ++ )
  12. #define endl            '\n'
  13.  
  14. ll n, k;
  15. ll dp[44][44];
  16.  
  17. int main( void ) {
  18.     cin >> n >> k;
  19.     dp[2][1] = 1;
  20.     forn( i, 44 ) {
  21.         dp[i][0] = 1;
  22.     }
  23.     for( ll i = 3; i <= n; i ++ ) {
  24.         for( ll j = 1; j <= k; j ++ ) {
  25.             for( ll x = 0; x < i; x ++ ) {
  26.                 for( ll ii = x + 1; ii < i; ii ++ ) {
  27.                     for( ll jj = 0; jj < j; jj ++ ) {
  28.                         //cout << i << " " << j << endl;
  29.                         //cout << ii - 1 - x << " " << jj << endl;
  30.                         //cout << i - 1 - ii << " " << j - 1 - jj << endl << endl;
  31.                         dp[i][j] += dp[ii - x - 1][jj] * dp[i - 1 - ii][j - 1 - jj];
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     cout << dp[n][k] << endl;
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement