Submission #1179320

#TimeUsernameProblemLanguageResultExecution timeMemory
1179320alterioCloud Computing (CEOI18_clo)C++20
100 / 100
709 ms2204 KiB
#include <bits/stdc++.h>

using namespace std;

#define endl '\n'
#define ll long long
#define all(x) (x).begin(), (x).end()

const int mxc = 1e5 + 10;

struct S {
    ll c, f, v;
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin >> n;
    vector<S> a;
    for (int i = 0; i < n; i++) {
        ll c, f, v;
        cin >> c >> f >> v;
        a.push_back({c, f, -v});
    }
    int m;
    cin >> m;
    for (int i = 0; i < m; i++) {
        ll c, f, v;
        cin >> c >> f >> v;
        a.push_back({-c, f, v});
    }
    sort(all(a), [&] (S f, S s) {
        return (f.f == s.f ? f.v < s.v : f.f > s.f);
    });
    vector<ll> dp(mxc, -2e17), newDp(mxc);
    dp[0] = 0;
    for (auto x : a) {
        newDp = dp;
        for (int i = 0; i < mxc; i++) {
            if (i - x.c >= 0 && i - x.c < mxc && dp[i - x.c] != -2e17) newDp[i] = max(newDp[i], dp[i - x.c] + x.v);
        }
        dp = newDp;
    }
    cout << *max_element(all(dp));
}
#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...