Submission #223080

#TimeUsernameProblemLanguageResultExecution timeMemory
223080MKopchevCloud Computing (CEOI18_clo)C++14
100 / 100
851 ms2168 KiB
#include<bits/stdc++.h> using namespace std; const int MX=50*2000+42,nmax=2e3+42; const long long inf=1e18; struct comp { int cores,rate,gain; }; comp inp[nmax*2]; int n,m; long long dp[2][MX]; void my_clean(int id) { for(int i=0;i<MX;i++) dp[id][i]=-inf; } void add(int which) { //ignore for(int i=0;i<MX;i++) dp[which&1][i]=dp[!(which&1)][i]; //take for(int i=0;i<MX;i++) { int would=i+inp[which].cores; if(0<=would&&would<MX)dp[which&1][would]=max(dp[which&1][would],dp[!(which&1)][i]+inp[which].gain); } } bool cmp(comp a,comp b) { if(a.rate!=b.rate)return a.rate>b.rate; return a.cores>b.cores; } int main() { scanf("%i",&n); for(int i=1;i<=n;i++) { scanf("%i%i%i",&inp[i].cores,&inp[i].rate,&inp[i].gain); inp[i].gain=-inp[i].gain; } my_clean(0); my_clean(1); dp[0][0]=0; scanf("%i",&m); for(int i=n+1;i<=n+m;i++) { scanf("%i%i%i",&inp[i].cores,&inp[i].rate,&inp[i].gain); inp[i].cores=-inp[i].cores; } n=n+m; sort(inp+1,inp+n+1,cmp); for(int i=1;i<=n;i++) add(i); long long output=0; for(int i=0;i<MX;i++) output=max(output,dp[n%2][i]); printf("%lld\n",output); return 0; }

Compilation message (stderr)

clo.cpp: In function 'int main()':
clo.cpp:43:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&n);
     ~~~~~^~~~~~~~~
clo.cpp:46:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i%i",&inp[i].cores,&inp[i].rate,&inp[i].gain);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:55:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&m);
     ~~~~~^~~~~~~~~
clo.cpp:59:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i%i",&inp[i].cores,&inp[i].rate,&inp[i].gain);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...