Submission #1216524

#TimeUsernameProblemLanguageResultExecution timeMemory
1216524Ahmed_KaanicheTwo Dishes (JOI19_dishes)C++20
3 / 100
10090 ms28480 KiB
#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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...