Cod sursa(job #1556015)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 23 decembrie 2015 22:47:43
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
ifstream f("fabrica.in");
ofstream g("fabrica.out");
int N,nrA,nrB,A[50005],B[50005];
int X[100005],Y[100005];
multiset <pair<int,int> > S;
int ansA,ansB;
void Read()
{
    f>>N>>nrA>>nrB;
    for(int i=1;i<=nrA;i++)
    {
        f>>A[i];
        S.insert(make_pair(A[i],A[i]));
    }
    for(int i=1;i<=nrB;i++)
        f>>B[i];
}

void Solve()
{
    for(int i=1;i<=N;i++)
    {
        auto it=*S.begin();
        S.erase(S.begin());
        ansA=max(ansA,it.first);
        X[i]=it.first;
        it.first+=it.second;
        S.insert(it);
    }
    S.clear();
    g<<ansA<<" ";
    for(int i=1;i<=nrB;i++)
        S.insert(make_pair(B[i],B[i]));
    for(int i=1;i<=N;i++)
    {
        auto it=*S.begin();
        S.erase(S.begin());
        Y[i]=it.first;
        it.first+=it.second;
        S.insert(it);
    }
    for(int i=1;i<=N;i++)
        ansB=max(ansB,X[i]+Y[N-i+1]);
    g<<ansB<<"\n";
}
int main()
{
    Read();
    Solve();
    return 0;
}