Submission #209525

#TimeUsernameProblemLanguageResultExecution timeMemory
209525model_codeKnapsack (NOI18_knapsack)C++14
100 / 100
93 ms3576 KiB
#include <bits/stdc++.h> #define MAXN 100004 #define MAXS 2004 using namespace std; int s,n,w[MAXN]; long long v[MAXN],k[MAXN],dp[MAXS]; typedef pair<int,int> ii; priority_queue <ii> pq[MAXS]; int main(){ scanf("%d %d",&s,&n); for(int x=0;x<n;x++){ scanf("%lld %d %lld",&v[x],&w[x],&k[x]); pq[w[x]].push(make_pair(v[x],k[x])); } for(int x=1;x<=s;x++){ long long cnt=s/x; while(!pq[x].empty()&&cnt){ ii i=pq[x].top(); pq[x].pop(); if(i.second>cnt) i.second=cnt; cnt-=i.second; for(int y=0;y<i.second;y++) for(int z=s;z>=x;z--) dp[z]=max(dp[z],dp[z-x]+i.first); } } long long ans=0; for(int x=1;x<=s;x++) ans=max(ans,dp[x]); printf("%lld\n",ans); return 0; }

Compilation message (stderr)

knapsack.cpp: In function 'int main()':
knapsack.cpp:10:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&s,&n);
  ~~~~~^~~~~~~~~~~~~~~
knapsack.cpp:12:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %d %lld",&v[x],&w[x],&k[x]);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...