제출 #1248483

#제출 시각아이디문제언어결과실행 시간메모리
1248483saipranaydeepKnapsack (NOI18_knapsack)C++20
37 / 100
1 ms328 KiB
/* (: A Lazy Coder :) */ #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int s, n; cin >> s >> n; vector<pair<int, int>> items; // Binary Decomposition of bounded items for (int i = 0; i < n; i++) { int v, w, k; cin >> v >> w >> k; for (int p = 1; k > 0; p <<= 1) { int cnt = min(p, k); items.emplace_back(v * cnt, w * cnt); k -= cnt; } } // Standard 0/1 Knapsack vector<int> dp(s + 1, 0); for (auto &[val, wt] : items) { for (int j = s; j >= wt; --j) { dp[j] = max(dp[j], dp[j - wt] + val); } } cout << dp[s] << "\n"; }
#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...