Pagini recente » Cod sursa (job #1048215) | Cod sursa (job #345925) | Cod sursa (job #1097501) | Cod sursa (job #1515904) | Cod sursa (job #1474722)
#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;
}