제출 #1191721

#제출 시각아이디문제언어결과실행 시간메모리
1191721petezaCloud Computing (CEOI18_clo)C++20
100 / 100
231 ms1352 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n, m, a, b, c;
vector<tuple<int, int, int, int>> events;
ll dp[100055];

int main() {
    for(int i=1;i<100055;i++) dp[i] = -99999999999999999ll;
    cin.tie(0) -> sync_with_stdio(0);
    cin >> n;
    for(int i=0;i<n;i++) {
        cin >> a >> b >> c;
        events.emplace_back(b, 2, a, c);
    }
    cin >> m;
    for(int i=0;i<m;i++) {
        cin >> a >> b >> c;
        events.emplace_back(b, 1, a, c);
    }
    sort(events.rbegin(), events.rend());
    for(auto &e:events) {
        int evetype = get<1>(e), val = get<3>(e), amo = get<2>(e);
        if(evetype == 1) {
            for(int i=0;i<=100000;i++) dp[i] = max(dp[i], dp[i+amo] + val);
        } else {
            for(int i=100000;i>=0;i--) dp[i+amo] = max(dp[i+amo], dp[i] - val);
        }
    }
    cout << *max_element(dp, dp+100055);
}
#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...