fork download
  1. #include<bits/stdc++.h>
  2. using namespace std ;
  3. int w[3000];
  4. int v[3000];
  5. int dp[3000][3000];
  6. int solve(int cap,int n)
  7. {
  8. if(cap<0)return -9999999;
  9. else if(n<=0)return 0 ;
  10. else if (dp[cap][n]!=-1) return dp[cap][n] ;
  11. return dp[cap][n] = max(solve(cap-w[n],n-1)+v[n],max(0,solve(cap,n-1)));
  12. }
  13. int main()
  14. {
  15. ios_base::sync_with_stdio(0);
  16. int cap,n;
  17. cin>>cap>>n;
  18. memset(dp,-1,sizeof(dp));
  19. for(int i=1;i<=n;i++)cin>>w[i]>>v[i];
  20. cout<<solve(cap,n)<<endl;
  21. return 0 ;
  22. }
Success #stdin #stdout 0.01s 38180KB
stdin
4 5
1 8
2 4
3 0
2 5
2 3
stdout
13