Submission #636265

#TimeUsernameProblemLanguageResultExecution timeMemory
636265borisAngelovKnapsack (NOI18_knapsack)C++11
73 / 100
224 ms8788 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1005; const int MAXS = 2005; int s, n; long long dp[MAXN][MAXS]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> s >> n; for (int i = 1; i <= n; i++) { int worth, weigth, copies; cin >> worth >> weigth >> copies; copies = min(copies, s / weigth); for (int j = 0; j <= s; j++) { for (int k = 0; k <= copies; k++) { if (k * weigth > j) break; dp[i][j] = max(dp[i][j], dp[i - 1][j - k * weigth] + k * worth); } } } long long ans = 0; for (int j = 0; j <= s; j++) ans = max(ans, dp[n][j]); cout << ans << endl; 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...