Submission #503963

#TimeUsernameProblemLanguageResultExecution timeMemory
503963krit3379Cloud Computing (CEOI18_clo)C++14
100 / 100
691 ms1996 KiB
#include<bits/stdc++.h>
using namespace std;
#define N 2005

struct A{
    int c,f,v;
    bool operator<(const A& o)const{
        if(f!=o.f)return f>o.f;
        return c>o.c;
    }
};

A a[2*N];
long long dp[2][100005],ans,nn=100000;

int main(){
    int n,m,i,j,k,now=0,prev,c,f,v;
    scanf("%d",&n);
    for(i=1;i<=n;i++)scanf("%d %d %d",&a[i].c,&a[i].f,&a[i].v),a[i].v*=-1;
    scanf("%d",&m);
    for(i=n+1;i<=n+m;i++)scanf("%d %d %d",&a[i].c,&a[i].f,&a[i].v),a[i].c*=-1;
    sort(a+1,a+n+m+1);
    n+=m;
    for(i=1;i<=nn;i++)dp[now][i]=-1e18;
    for(i=1;i<=n;i++){
        prev=now;
        now=1-now;
        c=a[i].c;
        f=a[i].f;
        v=a[i].v;
        for(j=0;j<=nn;j++)dp[now][j]=dp[prev][j];
        for(j=0;j<=nn;j++){
            if(j-c>=0&&j-c<=nn)dp[now][j]=max(dp[now][j],dp[prev][j-c]+v);
        }
    }
    for(i=0;i<=nn;i++)ans=max(ans,dp[now][i]);
    printf("%lld",ans);
    return 0;
}

Compilation message (stderr)

clo.cpp: In function 'int main()':
clo.cpp:17:17: warning: unused variable 'k' [-Wunused-variable]
   17 |     int n,m,i,j,k,now=0,prev,c,f,v;
      |                 ^
clo.cpp:17:32: warning: variable 'f' set but not used [-Wunused-but-set-variable]
   17 |     int n,m,i,j,k,now=0,prev,c,f,v;
      |                                ^
clo.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
clo.cpp:19:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |     for(i=1;i<=n;i++)scanf("%d %d %d",&a[i].c,&a[i].f,&a[i].v),a[i].v*=-1;
      |                      ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:20:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |     scanf("%d",&m);
      |     ~~~~~^~~~~~~~~
clo.cpp:21:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |     for(i=n+1;i<=n+m;i++)scanf("%d %d %d",&a[i].c,&a[i].f,&a[i].v),a[i].c*=-1;
      |                          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...