Cod sursa(job #997847)

Utilizator misinozzz zzz misino Data 14 septembrie 2013 23:08:01
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<queue>
#define N 100010
using namespace std;
ifstream f("fabrica.in");
ofstream g("fabrica.out");
int n,nra,nrb,i,x,max1,max2,sol1[N],sol2[N];
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >h;
int main()
{
    f>>n>>nra>>nrb;
    for(i=1;i<=nra;++i)
    {
        f>>x;
        h.push(make_pair(x,x));
    }
    for(i=1;i<=n;++i)
    {
        sol1[i]=h.top().first;
        h.push(make_pair(h.top().first+h.top().second,h.top().second));
        h.pop();
    }
    while(!h.empty())
    {
        h.pop();
    }
    for(i=1;i<=nrb;++i)
    {
        f>>x;
        h.push(make_pair(x,x));
    }
    for(i=1;i<=n;++i)
    {
        sol2[i]=h.top().first;
        h.push(make_pair(h.top().first+h.top().second,h.top().second));
        h.pop();
    }
    for(i=1;i<=n;++i)
    {
        max1=max(max1,sol1[i]);
        max2=max(max2,sol1[i]+sol2[n-i+1]);
    }
    g<<max1<<' '<<max2<<'\n';
    return 0;
}