Advertisement
ke_timofeeva7

псп по номеру

Oct 7th, 2021
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1.  
  2.     int n, k;
  3.     cin >> n >> k;
  4.  
  5.     vector<vector<int>> dp(2 * n + 1, vector<int>(2 * n + 1));
  6.  
  7.     dp[0][0] = 1;
  8.  
  9.     for (int i = 1; i <= 2 * n; i++)
  10.     {
  11.         for (int bal = 0; bal <= 2 * n; bal++)
  12.         {
  13.             if (bal > 0)
  14.             {
  15.                 dp[i][bal] = dp[i - 1][bal - 1];
  16.             }
  17.            
  18.             if (bal < n)
  19.             {
  20.                 dp[i][bal] += dp[i - 1][bal + 1];
  21.             }
  22.         }
  23.     }
  24.  
  25.     if (dp[2 * n][0] <= k)
  26.     {
  27.         cout << "N/A";
  28.         return 0;
  29.     }
  30.  
  31.     vector<char> ans(2 * n);
  32.  
  33.     int bal = 0;
  34.  
  35.     for (int i = 0; i < 2 * n; i++)
  36.     {
  37.         if (k < dp[2 * n - i - 1][bal + 1])
  38.         {
  39.             ans[i] = '(';
  40.             bal++;
  41.         }
  42.         else
  43.         {
  44.             k -= dp[2 * n - i - 1][bal + 1];
  45.             ans[i] = ')';
  46.             bal--;
  47.         }
  48.     }
  49.    
  50.  
  51.     for (int i = 0; i < 2 * n; i++)
  52.     {
  53.         cout << ans[i];
  54.     }
  55.  
  56.     return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement