fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef vector<ll> vi;
  6. typedef vector<long long> vl;
  7. #define pb push_back
  8. #define ff first
  9. #define ss second
  10. #define forn(n) for (ll i = 0; i < n; i++)
  11. #define forc(cn, abc) ((cn).find(abc) != (cn).end())
  12. #define yes cout << "YES\n";
  13. #define no cout << "NO\n";
  14. #define all(a) a.begin(), a.end()
  15. #define rall(a) a.rbegin(), a.rend()
  16. #define poin(x) cout << fixed << setprecision(x);
  17.  
  18. int dp[35][35];
  19. ll n, r;
  20. ll combination(ll n, ll r)
  21. {
  22. if (n == r)
  23. return 1;
  24.  
  25. if (r == 1)
  26. return n;
  27.  
  28. if(dp[n][r] != -1)
  29. return dp[n][r];
  30.  
  31. return dp[n][r] = combination(n - 1, r) + combination(n - 1, r - 1);
  32. }
  33. void solve()
  34. {
  35. memset(dp, -1, sizeof(dp));
  36. cin >> n >> r;
  37.  
  38. ll output = combination(n, r);
  39. cout << output << endl;
  40. }
  41.  
  42. int main()
  43. {
  44. ios_base::sync_with_stdio(0);
  45. cin.tie(0);
  46.  
  47. ll t = 1;
  48. while (t--)
  49. {
  50. solve();
  51. }
  52.  
  53. return 0;
  54. }
  55.  
Success #stdin #stdout 0.01s 5312KB
stdin
4 2
stdout
6