#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n; cin >> n;
vector<pair<int, int>> a(n);
for (int i = 0; i < n; i++){
int c; cin >> c;
cin >> a[i].first >> a[i].second;
}
sort(a.begin(), a.end());
int m; cin >> m;
vector<pair<int, int>> b(m);
for (int i = 0; i < m; i++){
int c; cin >> c;
cin >> b[i].first >> b[i].second;
}
vector<vector<int>> dp(n + 1, vector<int> (m + 1));
for (int i = 0; i < n; i++){
if (a[i].first >= b[0].first){
dp[i][0] = max(0LL, b[0].second - a[i].second);
}
}
for (int j = 1; j < m; j++){
for (int i = 0; i < n; i++){
for (int l = 0; l <= i; l++){
if (a[i].first >= b[j].first) {
dp[i][j] = max(dp[i][j], dp[l][j - 1] + b[j].second - a[i].second);
}
}
}
}
int ans = 0;
for (int i = 0; i < n; i++){
ans = max(ans, dp[i][m - 1]);
}
cout << ans << endl;
}
# | 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... |