Cod sursa(job #1474722)

Utilizator enedumitruene dumitru enedumitru Data 22 august 2015 17:50:55
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>
#include<queue>
#define N 100100
using namespace std;
ifstream f("fabrica.in"); ofstream g("fabrica.out");
int n,nra,nrb,i,ta,tab,x,a[N],b[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)///a[i]=timpul dupa care am terminat de facut a i-a doza la A
    {   a[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)///b[i]=timpul dupa care am terminat de facut a i-a doza la B
    {   b[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)///trebuie sa minimizam timpul de asteptare pt A si B
                     ///luam una cu timp mai mic in A cu una cu timp mai mare in B
        {ta=max(ta,a[i]); tab=max(tab,a[i]+b[n-i+1]);}
    g<<ta<<' '<<tab<<'\n';
    return 0;
}