Submission #1319646

#TimeUsernameProblemLanguageResultExecution timeMemory
1319646AgageldiKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms2816 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define N 500005 int tc = 1, n, a[N], S, v[N], w[N], k[N], mx, pos[N]; vector <int> dp; int32_t main() { ios::sync_with_stdio(0);cin.tie(0); cin >> S >> n; for(int i = 1; i <= n; i++) { cin >> v[i] >> w[i] >> k[i]; } dp.assign(S + 1, 0); for(int i = 1; i <= n; i++) { for(int j = S; j >= 0; j--) { int sum = 0, cost = 0, l = k[i]; while(l > 0 && j + sum + w[i] <= S) { sum += w[i]; cost += v[i]; l--; dp[j + sum] = max(dp[j + sum], dp[j] + cost); } } } for(int i = 0; i <= S; i++) { mx = max(mx, dp[i]); } cout << mx << '\n'; return 0; }
#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...