Submission #917027

#TimeUsernameProblemLanguageResultExecution timeMemory
917027blessyouKnapsack (NOI18_knapsack)C++17
100 / 100
269 ms4976 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int INF = 1e15, MOD = 1e9 + 7; mt19937_64 rnd(441225); // ddly int binpow(int x, int a) { int ret = 1; while (a > 0) { if (a & 1) { ret *= x; ret %= MOD; a--; } else { x *= x; x %= MOD; a >>= 1; } } return ret; } signed main() { cin.tie(0); ios_base::sync_with_stdio(false); int s, n; cin >> s >> n; vector<int> v(n), w(n), k(n); for (int i = 0; i < n; i++) { cin >> v[i] >> w[i] >> k[i]; } vector<int> dp(s + 1); for (int i = 0; i < n; i++) { int cnt = 1; vector<int> ndp = dp; while (cnt > 0 && k[i]-- > 0) { cnt = 0; for (int j = w[i]; j <= s; j++) { if (dp[j - w[i]] + v[i] > dp[j]) { cnt++; ndp[j] = dp[j - w[i]] + v[i]; } } dp = ndp; } } cout << dp[s]; }
#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...