Submission #815518

#TimeUsernameProblemLanguageResultExecution timeMemory
815518winthemcut3Knapsack (NOI18_knapsack)C++14
73 / 100
1086 ms17748 KiB
#include <bits/stdc++.h> #define FastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define ll long long #define PB push_back #define ALL(v) (v).begin(), (v).end() #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++) #define FORD(i, b, a) for (int i = (b), _a = (a); i >= _a; i--) #define fi first #define se second #define BIT(x, i) (((x) >> (i)) & 1) using namespace std; /** END OF TEMPLATE **/ const int mxN = 1e5 + 5; struct item { ll v, w; }; ll n, s, dp[2005]; int main() { FastIO; //freopen(".inp", "r", stdin); //freopen(".out", "w", stdout); cin >> s >> n; vector<item> a; FOR(i, 1, n) { ll v, w, cnt; cin >> v >> w >> cnt; ll t = 1; while(cnt >= t) { if(t*w <= s) a.PB({t*v, t*w}); cnt -= t; t <<= 1; } if(cnt) if(cnt*w <= s) a.PB({cnt*v, cnt*w}); } FOR(i, 0, a.size()-1) { FORD(j, s, a[i].w) dp[j] = max(dp[j], dp[j - a[i].w] + a[i].v); } cout << dp[s]; 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...