Advertisement
Fastrail08

Catalan numbers

Jul 7th, 2025 (edited)
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. long long getNthCatalan(int n, vector<long long> &memo){
  5.     if(n == 0 || n == 1){
  6.         return 1;
  7.     }
  8.     if(memo[n] != -1){
  9.         return memo[n];
  10.     }
  11.     long long nthCatalan = 0;
  12.     for(int i = 0, j = n - 1; i <= j; i++, j--){
  13.         long long ithTerm = (long long) getNthCatalan(i, memo) * (long long) getNthCatalan(j, memo);
  14.         nthCatalan += (i != j) ? 2 * ithTerm : ithTerm;
  15.     }
  16.     return memo[n] = nthCatalan;
  17. }
  18.  
  19. int main() {
  20.     // your code goes here
  21.     int n;
  22.     cin >> n;
  23.     vector<long long> memo(n + 1, -1);
  24.     cout << getNthCatalan(n, memo) << '\n';
  25. }
  26.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement