fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. signed main()
  5. {
  6. ios_base::sync_with_stdio(false); cin.tie(0);
  7. int n;
  8. cin>>n;
  9.  
  10.  
  11. int sum=0;
  12. int l = 0;
  13. vector<int> v(n,0);
  14. for(auto x:v)
  15. {
  16. cin>>x;
  17. sum+=x;
  18. l=max(l,x);
  19. }
  20.  
  21.  
  22. vector<vector<int>> dp(n + 1, vector<int>(sum + 1, 0));
  23.  
  24. dp[0][0] = 1;
  25.  
  26. for (int i = 1; i <= n; i++) {
  27. int x = v[i - 1];
  28. for (int s = 0; s <= sum; s++) {
  29. // not take
  30. dp[i][s] += dp[i - 1][s];
  31.  
  32. // take
  33. if (s >= x)
  34. dp[i][s] += dp[i - 1][s - x];
  35. }
  36. }
  37.  
  38. // count sums >= x
  39. int ans = 0;
  40. for (int s = l; s <= sum; s++)
  41. ans += dp[n][s];
  42.  
  43. cout<<ans;
  44. }
Success #stdin #stdout 0s 5304KB
stdin
7 
1 2 3 4 5 5 5 
stdout
Standard output is empty