Submission #1280604

#TimeUsernameProblemLanguageResultExecution timeMemory
1280604njoopCloud Computing (CEOI18_clo)C++20
0 / 100
74 ms2056 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

vector<tuple<int, int, int>> t;

int dp[2][100010];

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    int n, m;
    cin >> n;
    for(int i=1; i<=n; i++) {
        int c, f, v;
        cin >> c >> f >> v;
        t.push_back({-f, c, -v});
    }
    cin >> m;
    for(int i=1; i<=m; i++) {
        int c, f, v;
        cin >> c >> f >> v;
        t.push_back({-f, -c, v});
    }
    sort(t.begin(), t.end());
    for(int i=0; i<100010; i++) {
        dp[0][i] = -1e18;
        dp[1][i] = -1e18;
    }
    dp[0][0] = 0;
    int prev=0, cur=1;
    for(auto i: t) {
        int c = get<1>(i), v = get<2>(i);
        for(int j=0; j<100010; j++) {
            if(j+c >= 100001 || j+c < 0) continue;
            dp[cur][j+c] = max({dp[cur][j+c], dp[prev][j]+v, dp[prev][j+c]});
        }
        swap(prev, cur);
    }
    int ans = 0;
    swap(prev, cur);
    for(int i=0; i<100010; i++) {
        ans = max(ans, dp[cur][i]);
    }
    cout << ans;
    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...