#include <bits/stdc++.h>
using namespace std;
const long long maxn=1e6+5;
long long n,m;
long long a[maxn],s[maxn],p[maxn];
long long b[maxn],t[maxn],q[maxn];
long long pa[maxn],pb[maxn];
void read()
{
cin>>n>>m;
for(long long i=1;i<=n;i++)
cin>>a[i]>>s[i]>>p[i];
for(long long i=1;i<=m;i++)
cin>>b[i]>>t[i]>>q[i];
for(long long i=1;i<=n;i++)
pa[i]=pa[i-1]+a[i];
for(long long i=1;i<=m;i++)
pb[i]=pb[i-1]+b[i];
}
long long dp[2001][2001];
void solve()
{
for(long long i=0;i<=n;i++)
{
for(long long j=0;j<=m;j++)
{
if(i==0&&j==0)continue;
if(i==0)dp[i][j]=dp[i][j-1]+((pa[i]+pb[j])<=t[j])*q[j];
else if(j==0)dp[i][j]=dp[i-1][j]+((pa[i]+pb[j])<=s[i])*p[i];
else dp[i][j]=max(dp[i-1][j]+((pa[i]+pb[j])<=s[i])*p[i],dp[i][j-1]+((pa[i]+pb[j])<=t[j])*q[j]);
}
}
cout<<dp[n][m]<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
read();
solve();
return 0;
}
| # | 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... |