Submission #1350931

#TimeUsernameProblemLanguageResultExecution timeMemory
1350931prikpaoCloud Computing (CEOI18_clo)C++20
72 / 100
634 ms2200 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#define pii pair<int, int>
#define t3 tuple<int, int, int>
#define pepperX ios_base::sync_with_stdio(false); cin.tie(0);
using ll = long long;
using namespace std;
#define int ll

struct A{
    int core, rate, value;
    bool operator<(const A& o)const{
        return rate>o.rate;
    }
};

vector<A> v;

void solve(){
    int n, m;
    cin >> n;
    for(int i=1; i<=n; i++){
        int c, r, p;
        cin >> c >> r >> p;
        v.push_back({c, r, -p});
    }
    cin >> m;
    for(int i=1; i<=m; i++){
        int c, r, p;
        cin >> c >> r >> p;
        v.push_back({-c, r, p});
    }
    sort(v.begin(), v.end());
    vector<int> pre(100005, -1e18), now;
    pre[0]=0;
    for(auto [c,r,p]:v){
        now=pre;
        for(int j=0; j<=1e5; j++){
            if(0<=j-c && j-c<=1e5 && pre[j-c]!=-1e18)now[j]=max(pre[j], pre[j-c]+p);
            //else now[j]=pre[j];
        }
        pre=now;
    }
    cout << *max_element(pre.begin(), pre.end());
}

int32_t main(){
    pepperX;
    int tcs=1;
    //cin >> tcs;
    while(tcs--) solve();
    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...