#include<bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 3e18;
signed main()
{
int n , m;
cin>>n>>m;
vector<int> a(n + 1) , s(n + 1) , p(n + 1) , b(m + 1) , t(m + 1) , q(m + 1) , f(n + 2) , g(m + 1);
for(int i = 1 ; i <= n ; i++)
{
cin>>a[i]>>s[i]>>p[i];
f[i] = a[i] + f[i - 1];
p[i]+=p[i - 1];
}
f[n + 1] = f[n];
for(int i = 1 ; i <= m ; i++)
{
cin>>b[i]>>t[i]>>q[i];
g[i] = b[i] + g[i - 1];
q[i]+=q[i - 1];
}
int T = s[1];
int ans = -INF;
for(int i = 0 ; i <= n ; i++)
{
int it = upper_bound(g.begin() , g.end() , T - f[i]) - g.begin();
it--;
if(it < 0)
continue;
if(g[it] + f[i + 1] <= T)
continue;
ans = max(ans , p[i] + q[it]);
}
cout<<ans<<'\n';
}
# | 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... |