fork download
  1. #include<iostream>
  2. #include<cassert>
  3.  
  4. using namespace std;
  5.  
  6. long long dp[505][505], ans;
  7. int n;
  8.  
  9. long long f(int t,int p) {
  10. if(t == n) return 1;
  11. if(dp[t][p] != -1) return dp[t][p];
  12. dp[t][p] = 0;
  13. for(int i = p+1; i <= n-t; i++) {
  14. dp[t][p] += f(t+i,i);
  15. }
  16. return dp[t][p];
  17. }
  18.  
  19. int main() {
  20. cin >> n;
  21. assert(n >= 5 && n <= 500);
  22. for(int i = 1; i <= n; i++) {
  23. for(int j = 1; j <= n; j++) {
  24. dp[i][j] = -1;
  25. }
  26. }
  27. for(int i = 1; i < n; i++) {
  28. ans += f(i,i);
  29. }
  30. cout << ans << "\n";
  31. return 0;
  32. }
Runtime error #stdin #stdout #stderr 0s 18056KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
prog: prog.cpp:21: int main(): Assertion `n >= 5 && n <= 500' failed.