#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define endl "\n"
ll n, m;
vector<pair<ll, pair<ll, ll>>> arr1;
vector<pair<ll, pair<ll, ll>>> arr2;
ll solve(ll a, ll b, ll t) {
ll ans1 = 0, ans2 = 0;
if (a < n) {
if (t + arr1[a].fi <= arr1[a].se.fi)
ans1 += arr1[a].se.se;
ans1 += solve(a + 1, b, t + arr1[a].fi);
}
if (b < m) {
if (t + arr2[b].fi <= arr2[b].se.fi)
ans2 += arr2[b].se.se;
ans2 += solve(a , b+1, t + arr2[b].fi);
}
return max(ans1,ans2);
}
int main() {
//the booster of input and output
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
//the body
cin >> n >> m;
arr1.resize(n);
arr2.resize(m);
for (ll i = 0; i < n; ++i) {
cin >> arr1[i].fi >> arr1[i].se.fi >> arr1[i].se.se;
}
for (ll i = 0; i < m; ++i) {
cin >> arr2[i].fi >> arr2[i].se.fi >> arr2[i].se.se;
}
cout << solve(0,0,0) << endl;
return 0;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |