Submission #1183532

#TimeUsernameProblemLanguageResultExecution timeMemory
1183532amine_arouaTwo Dishes (JOI19_dishes)C++20
5 / 100
305 ms12948 KiB
#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 + 1) , 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];
    }
    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(i != n && g[it] + f[i + 1] <= T)
            continue;
        ans = max(ans , p[i] + q[it]);
    }
    cout<<ans<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...