Submission #1277128

#TimeUsernameProblemLanguageResultExecution timeMemory
1277128I_FloPPed21Cloud Computing (CEOI18_clo)C++20
72 / 100
648 ms1932 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=2001;
struct procesor
{
    int cores,frv,scor;

    bool operator<(const procesor &other)const
    {
        return frv>other.frv;
    }
}v[N];
int n;
void read()
{
    cin>>n;
    int total=0;
    vector<procesor>merged;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i].cores>>v[i].frv>>v[i].scor;
        v[i].scor=-v[i].scor;
        merged.push_back(v[i]);
        total+=v[i].cores;
    }
    int m;
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>v[i].cores>>v[i].frv>>v[i].scor;
        v[i].cores=-v[i].cores;
        merged.push_back(v[i]);
    }
    sort(merged.begin(),merged.end());
    long long ans=0;
    vector<long long>knp(total+2,-1e18);
    knp[0]=0;

    for(auto [cores,frv,scor]:merged)
    {
        vector<long long>knp2(total+2,-1e18);
        for(int i=0;i<=total;i++)
        {
            if(i+cores>=0&&i+cores<=total)
            {
                knp2[i+cores]=max(knp2[i+cores],knp[i]+scor);
            }
        }

        for(int i=0;i<=total;i++)
        {
            knp[i]=max(knp[i],knp2[i]);
            ans=max(ans,knp[i]);
        }
    }
    cout<<ans<<'\n';
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    read();
    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...