Submission #1023761

#TimeUsernameProblemLanguageResultExecution timeMemory
1023761vjudge1Knapsack (NOI18_knapsack)C++17
12 / 100
1 ms348 KiB
#include <bits/stdc++.h> #define int long long using namespace std; #define boost ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); const int N = 1e6 + 12, INF = 1e9 + 7; signed main () { boost int s, n; cin >> s >> n; if(n == 1){ int v, w, k; cin >> v >> w >> k; int sum = 0; while(k >= 1 and s >= 0){ if(s - w >= 0 and k - 1 >= 0){ s -= w; k -= 1; sum += v; } else { break; } } cout << sum; return 0; } vector<int>w(n + 1), v(n + 1), k(n + 1); for(int i = 1; i <= n; ++i){ cin >> v[i] >> w[i] >> k[i]; } int dp[112][s + 12]; dp[0][0] = 0; for(int i = 1; i <= n; ++i){ for(int j = 1; j <= s; ++j){ if(w[i] <= j){ for(int just = 1; just <= k[i]; ++just){ dp[i][j] = max(dp[i][j], dp[i - 1][j - w[i] * just] + v[i] * just); } } } } int mx = 0; for(int i = 1; i <= n; ++i){ for(int j = 1; j <= s; ++j){ mx = max(mx, dp[i][j]); } } cout << mx; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...