Submission #1287854

#TimeUsernameProblemLanguageResultExecution timeMemory
1287854huseyncafarliKnapsack (NOI18_knapsack)C++20
37 / 100
2 ms580 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define pii pair<int, int> #define pll pair<ll, ll> #define vi vector<int> #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define nline '\n' #define lsb(x) ((x) & -(x)) // #define int ll #define fastio ios_base::sync_with_stdio(0); cin.tie(0) using namespace std; const int sz = (int)1e5 + 5; const int inf = 2e9 + 5; const int mod1 = 1e9 + 7; const int mod2 = 998244353; int powmod(int n, int m, int mod) { int res = 1; while (m) { if (m & 1) res = 1ll * res * n % mod; n = 1ll * n * n % mod; m >>= 1; } return res; } struct Items { int v, w; }; void solve() { ios_base::sync_with_stdio(false); cin.tie(NULL); int s, n; cin >> s >> n; vector<Items> vv; for (int i = 0; i < n; i++) { int v, w, k; cin >> v >> w >> k; int p = 1; while (k > 0) { int take = min(p, k); vv.push_back({v*take, w*take}); k -= take; p <<= 1; } } vector<int> dp(s + 1, 0); for (auto &it: vv) { for (int j = s; j >= it.w; j--) { dp[j] = max(dp[j], dp[j - it.w] + it.v); } } cout << dp[s] << nline; } int main() { fastio; int t = 1; // cin >> t; while (t--) { solve(); } }
#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...