Submission #1319382

#TimeUsernameProblemLanguageResultExecution timeMemory
1319382111Knapsack (NOI18_knapsack)C++20
0 / 100
0 ms332 KiB
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int S,N; cin>>S>>N; static long long dp[2001]; for(int i=0;i<=S;i++) { dp[i] = -LLONG_MAX; } dp[0] = 0; for(int i=1;i<=N;i++) { long long V,W,K; cin>>V>>W>>K; for(int r=0;r<W;r++) { deque<int>q; for(int s=r;s<=S;s+=W) { long long cur = dp[s] - (s-r)/W * V; while(!q.empty() && (s - q.front())/W > K) { q.pop_front(); } while(!q.empty() && dp[q.back()] - (q.back()-r)/W * V <= cur) { q.pop_back(); } q.push_back(s); dp[s] = dp[q.front()] + (s - q.front())/W * V; } } } long long ans=0; for(int i=0;i<=S;i++) { ans = max(ans, dp[i]); } cout<<ans; 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...