#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int n , m;
cin>>n>>m;
vector<int> a(n + 1) , s(n + 1) , p(n + 1) , b(n + 1) , t(n + 1) , q(n + 1) , f(n + 1) , g(n + 1);
for(int i = 1 ; i <= n ; i++)
{
cin>>a[i]>>s[i]>>p[i];
f[i] = a[i] + f[i - 1];
}
for(int i = 1 ; i <= n ; i++)
{
cin>>b[i]>>t[i]>>q[i];
g[i] = b[i] + g[i - 1];
}
vector<vector<int>> dp(n + 1 , vector<int>(n + 1));
for(int i = 0 ; i <= n ; i++)
{
for(int j = 0 ; j <= n ; j++)
{
if(i >= 1)
{
dp[i][j] = dp[i - 1][j] + ((f[i] + g[j]) <= s[i] ? p[i] : 0ll);
}
if(j >= 1)
dp[i][j] = max(dp[i][j] , dp[j - 1][i] + ((f[i] + g[j]) <= t[j] ? q[j] : 0ll));
}
}
cout<<dp[n][n]<<'\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... |