Submission #1298643

#TimeUsernameProblemLanguageResultExecution timeMemory
1298643uchihahahaheCloud Computing (CEOI18_clo)C++20
100 / 100
528 ms3044 KiB
#include <bits/stdc++.h> #define ll long long #define db long double #define pll pair<ll,ll> #define foru(i,a,b) for(ll i=(a);i<=(b);i++) #define ford(i,a,b) for(ll i=(a);i>=(b);i--) #define ALL(a) (a).begin(),(a).end() #define ROUND(i) fixed<<setprecision(i) #define fi first #define se second using namespace std; ll n,m; struct abc{ ll c,f,v; bool operator<(abc&o){ if(f!=o.f)return f>o.f; return v<o.v; } }t[4003]; ll MX=0; ll dp[4003*55+10]; ll pd[4003*55+10]; signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n; ll s1=0,s2=0; foru(i,1,n){ ll c,f,v;cin>>c>>f>>v; s1+=c; v=-v; t[i]={c,f,v}; } cin>>m; foru(i,1,m){ ll c,f,v;cin>>c>>f>>v; s2+=c; c=-c; t[i+n]={c,f,v}; } MX=max(s1,s2); sort(t+1,t+n+m+1); memset(dp,-0x3f,sizeof(dp)); dp[0]=0; foru(i,1,n+m){ foru(j,0,MX)pd[j]=dp[j]; foru(j,0,MX){ if(0<=j-t[i].c&&j-t[i].c<=MX&&pd[j-t[i].c]>-1e17) dp[j]=max(dp[j],pd[j-t[i].c]+t[i].v); } } ll res=0; foru(i,0,MX)res=max(res,dp[i]); cout<<res; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...