Submission #1235487

#TimeUsernameProblemLanguageResultExecution timeMemory
1235487rcllCloud Computing (CEOI18_clo)C++20
100 / 100
523 ms1456 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N=1e5+2; struct Com { ll c,f,v,req; }; Com C; int main() { ll t,n,m,ans,s,sum,x,y,r,p,i,j; cin >> n; vector < Com > v; for (i=1; i <= n; i ++) { cin >> C.c >> C.f >> C.v; C.req=0; v.push_back(C); } cin >> m; for (i=1; i <= m; i ++) { cin >> C.c >> C.f >> C.v; C.req=1; v.push_back(C); } sort(v.begin(),v.end(),[](Com& A,Com& B){ if ( A.f == B.f) return A.req < B.req; return A.f > B.f; }); vector < ll > dp(N+2,-1e16); dp[0]=0; ans=0; for (Com& A : v) { if ( A.req == 1) { for (i=0; i+A.c <= N; i ++) { dp[i]=max(dp[i],dp[i+A.c]+A.v); } } else { for (i=N; i >= A.c; i --) { dp[i]=max(dp[i],dp[i-A.c]-A.v); } } for (i=0; i <= N; i ++) ans=max(ans,dp[i]); } cout << ans; }
#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...