Pagini recente » Cod sursa (job #301770) | Cod sursa (job #2794797) | Cod sursa (job #2423985) | Cod sursa (job #616122) | Cod sursa (job #2293667)
#include<fstream>
#include <queue>
#include <algorithm>
using namespace std;
int n,a,b;
int actual[100002];
struct boi
{
int timp,poz;
};
boi v[50002];
struct cmp
{
bool operator()(int a, int b)
{
return v[a].timp+v[a].poz>v[b].timp+v[b].poz;
}
};
priority_queue<int,vector<int>,cmp>q;
int main()
{
ifstream cin("fabrica.in");
ofstream cout("fabrica.out");
cin>>n>>a>>b;
for(int i=1;i<=a;++i)
{
cin>>v[i].poz;
q.push(i);
}
for(int i=1;i<=n;++i)
{
int x=q.top();
actual[i]=v[x].timp+v[x].poz;
v[x].timp+=v[x].poz;
q.pop();
q.push(x);
}
sort(actual+1,actual+n+1);
cout<<actual[n]<<" ";
while(!q.empty())
q.pop();
for(int i=1;i<=b;++i)
{
cin>>v[i].poz;
v[i].timp=0;
q.push(i);
}
int tmax=0;
for(int i=n;i>=1;--i)
{
int x=q.top();
tmax=max(tmax,actual[i]+v[x].timp+v[x].poz);
v[x].timp+=v[x].poz;
q.pop();
q.push(x);
}
cout<<tmax;
return 0;
}