Submission #1217044

#TimeUsernameProblemLanguageResultExecution timeMemory
1217044sam230609Cloud Computing (CEOI18_clo)C++20
100 / 100
1327 ms5220 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; struct item{ ll t,cs,cr,val; }; ll n,m; vector<ll> dp; vector<item> items; int main(){ cin >>n; while(n--){ ll c,f,v; cin >>c>>f>>v; items.push_back({0,c,f,v}); }cin >>m; while(m--){ ll c,f,v; cin >>c>>f>>v; items.push_back({1,c,f,v}); }sort(items.begin(), items.end(),[&](auto l,auto r){return l.cr==r.cr?l.t>r.t:l.cr<r.cr;}); auto upd=[&](vector<ll>& dp,ll i,ll profit){ while(dp.size()<=i) dp.push_back(-1e16); if(dp[i]<profit) dp[i]=profit; }; upd(dp,0,0); for(auto [t,cs,cr,val]:items){ vector<ll> ndp=dp; for(ll i=0;i<dp.size();++i){ upd(ndp,max(0LL,i+(t==0?-1:1)*cs),dp[i]+(t==0?-1:1)*val); }dp = ndp; }cout <<dp[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...