Submission #1246671

#TimeUsernameProblemLanguageResultExecution timeMemory
1246671papauloKnapsack (NOI18_knapsack)C++20
73 / 100
1096 ms444 KiB
#include <bits/stdc++.h> using namespace std; #define MAXS 2020 int dp[MAXS]; int main() { memset(dp, 0, sizeof(dp)); cin.tie(nullptr); ios::sync_with_stdio(false); int s, n; cin >> s >> n; while(n--) { int v, w, k; cin >> v >> w >> k; for(int wm=0;wm<w;wm++) { deque<pair<int, int>> dq; int cur=0; for(int curw=wm; curw<=s; curw+=w) { if(!dq.empty()&&cur-dq.back().second>k) dq.pop_back(); while(!dq.empty()&&dq.front().first+(cur-dq.front().second)*v<=dp[curw]) dq.pop_front(); dq.push_front({dp[curw], cur}); dp[curw]=dq.back().first+(cur-dq.back().second)*v; cur++; } } } cout << dp[s] << 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...