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