#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |