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...