Submission #1184646

#TimeUsernameProblemLanguageResultExecution timeMemory
1184646omarrrrTwo Dishes (JOI19_dishes)C++20
10 / 100
389 ms48260 KiB
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second

using namespace std;
ll const N=3e5;

ll a[N],b[N];
ll la[N],lb[N];
ll ra[N],rb[N];
ll n,m;

ll dp[2200][2220];

ll solve(ll i,ll j,ll s){
    if(i>n || j>m)
        return 0;
    if(dp[i][j]!=-1)
        return dp[i][j];
    ll xa=0,xb=0;
    if(i<n){
        if(s+a[i]<=la[i]){
            xa=ra[i];
        }
        xa+=solve(i+1,j,s+a[i]);
    }
    if(j<m){
        if(j<m && s+b[j]<=lb[j]){
            xb=rb[j];
        }
        xb+=solve(i,j+1,s+b[j]);
    }
    dp[i][j]=max(xa,xb);
    return dp[i][j];
}


int main(){
    memset(dp,-1,sizeof(dp));
    cin>>n>>m;
    for(ll i=0;i<n;i++){
        cin>>a[i]>>la[i]>>ra[i];
    }
    for(ll i=0;i<m;i++){
        cin>>b[i]>>lb[i]>>rb[i];
    }
    cout<<solve(0,0,0)<<"\n";




    return 0;
}

/*
2 1
1 5 5
2 3 5
1 6 5



 */
#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...