Advertisement
Korotkodul

0-1 РЮКЗАК: НАИБОЛЬШИЙ ВЕС

Feb 28th, 2022 (edited)
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <string>
  7. #include <stack>
  8. #include <set>
  9. #include <map>
  10. #define pii pair <int,int>
  11. #define vec vector
  12. using namespace std;
  13. using ll = long long;
  14. using ld = long double;
  15. using db = double;
  16. void cv(vector <int> &v){
  17. for (auto x: v) cout<<x<<' ';
  18. cout<<"\n";
  19. }
  20.  
  21. void cvl(vector <ll> &v){
  22. for (auto x: v) cout<<x<<' ';
  23. cout<<"\n";
  24. }
  25.  
  26.  
  27. void cvv(vector <vector <int> > &v){
  28. for (auto x: v) cv(x);
  29. cout<<"\n";
  30. }
  31.  
  32. void cvb(vector <bool> v){
  33. for (bool x: v) cout<<x<<' ';
  34. cout<<"\n";
  35. }
  36.  
  37. void cvs(vector <string> v){
  38. for (auto a: v){
  39. cout<<a<<"\n";
  40. }
  41. }
  42.  
  43.  
  44.  
  45. int main()
  46. {
  47. ios::sync_with_stdio(0);
  48. cin.tie(0);
  49. cout.tie(0);
  50. int n,m;
  51. cin>>n>>m;
  52. vector <int> w(n+1);
  53. for (int i=1;i<=n;++i)cin>>w[i];
  54. //cout<<"n m = "<<n<<' '<<m<<"\n";
  55. //cout<<"w\n";
  56. //cv(w);
  57. vector <vector <int> > dp(n+1 , vector <int> (m+1, 0));
  58.  
  59. //dp[n][m] - ans
  60. for (int i = 1; i <= n; ++i){
  61. for (int j = 1; j <= m; ++j){
  62. //можем взять i первых предемтов -- и сейчас берем i-й предмет
  63. //вместимость сейчас = j
  64. if (j - w[i] < 0){//если не вмещается
  65. dp[i][j] = dp[i-1][j];
  66. continue;
  67. }
  68. dp[i][j] = max(dp[i-1][j], dp[i-1][j - w[i]] + w[i]);
  69. /* if (j >= w[i]){
  70. dp[i][j] = max(dp[i-1][j], dp[i-1][j - w[i]] + w[i]);
  71. }
  72. else{
  73.  
  74. }*/
  75. }
  76. }
  77. //cout<<"dp\n";
  78. //cvv(dp);
  79. cout<<dp[n][m];
  80. }
  81. /*
  82. 2 3195
  83. 38 41
  84.  
  85. 2 80
  86. 38 41
  87. */
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement