Cod sursa(job #2494367)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 17 noiembrie 2019 19:29:05
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fi("fabrica.in");
ofstream fo("fabrica.out");
const int NMAX=1e5+5;
int n,nra,nrb,rez_a[NMAX],rez_b[NMAX],a[NMAX],b[NMAX],ans;
priority_queue <pair<int,int>> pqa,pqb;
int main()
{
    fi>>n>>nra>>nrb;
    for(int i=1;i<=nra;i++)
    {
        fi>>a[i];
        pqa.push({-a[i],i});
    }
    for(int i=1;i<=nrb;i++)
    {
        fi>>b[i];
        pqb.push({-b[i],i});
    }
    for(int i=1;i<=n;i++)
    {
        auto p=pqa.top();
        pqa.pop();
        rez_a[i]=-p.first;
        pqa.push({p.first-a[p.second],p.second});
    }
    for(int i=1;i<=n;i++)
    {
        auto p=pqb.top();
        pqb.pop();
        rez_b[i]=-p.first;
        pqb.push({p.first-b[p.second],p.second});
    }
    ans=rez_a[1]+rez_b[n];
    for(int i=2;i<=n;i++)
        ans=max(ans,rez_a[i]+rez_b[n-i+1]);
    fo<<rez_a[n]<<" "<<ans<<"\n";
    fi.close();
    fo.close();
    return 0;
}