#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 && (f[i] + g[j] < s[i]))
{
dp[i][j] = dp[i - 1][j] + 1;
}
else if(j >= 1 && ((f[i] + g[j]) < t[j]))
{
dp[i][j] = dp[j - 1][i] + 1;
}
else
{
if(i >= 1)
dp[i][j] = dp[i - 1][j];
if(j >= 1)
dp[i][j] = max(dp[i][j] , dp[i][j - 1]);
}
}
}
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... |