Advertisement
gabrielcabezas

Untitled

Mar 26th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector <int> w,v;
  4. int dp[2100][2100];
  5. int n,t,a,b,mx=0;
  6. int main()
  7. {
  8. scanf("%d %d",&t,&n);
  9. for (int i=0;i<n;i++)
  10. {
  11. scanf("%d %d",&a,&b);
  12. w.push_back(a);
  13. v.push_back(b);
  14. }
  15. for (int i=0;i<n;i++)
  16. {
  17. for (int j=0;j<=t;j++)
  18. {
  19. if (!i)
  20. dp[i][j]= (w[i]<=j ? v[i] : 0);
  21. else
  22. {
  23. dp[i][j]=dp[i-1][j];
  24. if (w[i]<=t)
  25. {
  26. dp[i][j]= max (dp[i-1][j], dp[i-1][j-w[i]]+v[i]);
  27. }
  28. }
  29.  
  30.  
  31. }
  32. }
  33. printf("%d\n",dp[n-1][n-1]);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement