Submission #1185137

#TimeUsernameProblemLanguageResultExecution timeMemory
1185137omarrrrTwo Dishes (JOI19_dishes)C++20
5 / 100
302 ms16148 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;




int main(){

    cin>>n>>m;
    ll prefta[n+5],prefra[n+5],preftb[m+5],prefrb[m+5];
    prefta[0]=prefra[0]=preftb[0]=prefrb[0]=0;
    for(ll i=0;i<n;i++){
        cin>>a[i]>>la[i]>>ra[i];
        prefta[i+1]=prefta[i]+a[i];
        prefra[i+1]=prefra[i]+ra[i];
    }
    for(ll i=0;i<m;i++){
        cin>>b[i]>>lb[i]>>rb[i];
        preftb[i+1]=preftb[i]+b[i];
        prefrb[i+1]=prefrb[i]+rb[i];
    }
    ll res=0,x=la[0];
    for(ll i=0;i<=n;i++){
        ll y= upper_bound(preftb,preftb+m+1,x-prefta[i])-preftb;
        res=max(res,prefra[i]+prefrb[y-1]);
        if(prefta[i+1]>x)
            break;
    }
    cout<<res<<"\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...