Submission #1254332

#TimeUsernameProblemLanguageResultExecution timeMemory
1254332warrennKnapsack (NOI18_knapsack)C++20
100 / 100
35 ms3144 KiB
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); int s,n; cin>>s>>n; vector<pair<int,int> >wei[s+1]; for(int q=1;q<=n;q++){ int v,w,k; cin>>v>>w>>k; wei[w].push_back({v,k}); } vector<pair<int,int> >hmm; for(int q=1;q<=s;q++){ sort(wei[q].rbegin(),wei[q].rend()); int idx=0; int rts=wei[q].size(); for(int w=1;w<=s/q;w++){ if(idx==rts)break; hmm.push_back({wei[q][idx].first,q}); wei[q][idx].second--; if(wei[q][idx].second==0)idx++; } } int dp[s+1]; for(int q=0;q<=s;q++)dp[q]=0; for(auto r : hmm){ for(int wei=s;wei>=r.second;wei--){ dp[wei]=max(dp[wei],dp[wei-r.second]+r.first); } } cout<<dp[s]<<endl; }
#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...