Submission #1157036

#TimeUsernameProblemLanguageResultExecution timeMemory
1157036kadirCloud Computing (CEOI18_clo)C++20
100 / 100
271 ms1352 KiB
#include<bits/stdc++.h>
#define int long long
#define ss second
#define ff first
#define pb push_back
#define endl "\n"
using namespace std;
const int mod=1e9+7;
signed main(){
    ios::sync_with_stdio(false);
    cout.tie(0);
    cin.tie(0);
	int n,m;
    cin>>n;
    vector<array<int,4>> v;
    for(int i=1; i<=n; i++) {
        int c,f,u;
        cin>>c>>f>>u;
        v.pb({f,1,c,u});
    }
    cin>>m;
    for(int i=1; i<=m; i++) {
        int c,f,u;
        cin>>c>>f>>u;
        v.pb({f,0,c,u});
    }
    sort(v.rbegin(),v.rend());
    vector<int> dp(2000*50+5,-1e18);
    dp[0]=0;
    for(auto [f,t,c,u]:v) {
        if(t==1) {
            for(int i=2000*50; i>=0; i--) {
                if(i-c>=0) {
                    dp[i]=max(dp[i],dp[i-c]-u);
                }
            }
        } else {
            for(int i=0; i<=2000*50; i++) {
                if(i-c>=0) {
                    dp[i-c]=max(dp[i-c],dp[i]+u);
                }
            }
        }
    }
    int res=0;
    for(int i=0; i<=2000*50; i++) {
        res=max(res,dp[i]);
    }
    cout<<res;
}
#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...