제출 #1277137

#제출 시각아이디문제언어결과실행 시간메모리
1277137I_FloPPed21Cloud Computing (CEOI18_clo)C++20
100 / 100
666 ms2120 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=2005;
struct procesor
{
    long long cores,frv,scor;
    bool operator<(const procesor &other)const
    {
        if(frv==other.frv)
            return cores>other.cores;
        return frv>other.frv;
    }
}v[N];
int n;
void read()
{
    cin>>n;
    long long 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=-1e18;
    vector<long long>knp(total+2,-1e16);
    knp[0]=0;
    for(auto [cores,frv,scor]:merged)
    {
        vector<long long>knp2(total+2,-1e16);
        knp2[0]=0;
        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...