Advertisement
gabrielcabezas

Untitled

Mar 26th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 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][t]=dp[i-1][t];
  24. if (w[i]<=t)
  25. {
  26. dp[i][j]= max (dp[i][j], dp[i-1][j-w[i]]+v[i]);
  27. }
  28. }
  29.  
  30.  
  31. }
  32. }
  33. for (int i=0;i<n;i++)
  34. mx=max(mx,dp[i][n-1]);
  35. printf("%d\n",mx);
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement