Submission #1174029

#TimeUsernameProblemLanguageResultExecution timeMemory
1174029escobrandCloud Computing (CEOI18_clo)C++20
100 / 100
544 ms2100 KiB
#include <bits/stdc++.h>

using namespace std;
#define all(v) v.begin(),v.end()
#define eb push_back
#define ll long long
#define fi first
#define se second
int i,n,j,u,v,tmp,m;
const int maxn = 1e5+10;
const ll inf = 1e17;
struct bruh
{
    int c,f,t;
    bool operator < (bruh & pmt)
    {
        if(f == pmt.f)return c > pmt.c;
        return f > pmt.f;
    }
};
vector<bruh> a;
ll dp[2][maxn],mx;
bool now = 0,pre;


int main()
{

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);


    for(i = 1;i<maxn;i++)dp[0][i] = -inf;
    dp[0][0] = 0;

    cin>>n;
    for(i = 1;i<=n;i++)
    {
        cin>>u>>v>>tmp;
        a.eb({u,v,-tmp});
    }
    cin>>m;
    for(i = 1;i<=m;i++)
    {
        cin>>u>>v>>tmp;
        a.eb({-u,v,tmp});
    }

    sort(all(a));

    for(const bruh &tmp : a)
    {
        now = !now;
        pre = !now;
//        cout<<tmp.c<<' '<<tmp.f<<' '<<tmp.t<<'\n';
        for(i = 0;i<maxn;i++)dp[now][i] = dp[pre][i];
        for(i = max(0,tmp.c);i<min(maxn,maxn + tmp.c);i++)
        {
            if(dp[pre][i - tmp.c] != -inf)dp[now][i] = max(dp[now][i],dp[pre][i - tmp.c] + tmp.t);
            mx = max(mx,dp[now][i]);
        }
    }

    cout<<mx;

    return 0;
}
#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...