Pagini recente » Cod sursa (job #686123) | Cod sursa (job #2382394) | Cod sursa (job #1554424) | Cod sursa (job #822348) | Cod sursa (job #1112488)
#include<fstream>
#include<queue>
#define N 100100
using namespace std;
ifstream f("fabrica.in");
ofstream g("fabrica.out");
int n,nra,nrb,i,sol1,sol2,x,sola[N],solb[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)///sola[i]=timpul dupa care am terminat de facut a i-a doza la A
{
sola[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)///solb[i]=timpul dupa care am terminat de facut a i-a doza la B
{
solb[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
{
sol1=max(sol1,sola[i]);
sol2=max(sol2,sola[i]+solb[n-i+1]);
}
g<<sol1<<' '<<sol2<<'\n';
return 0;
}