Pagini recente » Cod sursa (job #3218041) | Cod sursa (job #2639941) | Cod sursa (job #2463851) | Cod sursa (job #2784717) | Cod sursa (job #2526973)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("fabrica.in");
ofstream cout("fabrica.out");
int va[50005],vb[50005];
int v[50005],intarziere[50005],maxx[50005];
int main()
{
int n,na,nb;
cin>>n>>na>>nb;
for(int i=1;i<=na;++i)
cin>>va[i];
for(int i=1;i<=nb;++i)
cin>>vb[i];
sort(va+1,va+na+1);
sort(vb+1,vb+nb+1);
for(int i=1;i<=n;++i)
{
int minn=0x7fffffff,ii;
for(int ind=1;ind<=na;++ind)
if(v[ind]+va[ind]<minn)
minn=v[ind]+va[ind],ii=ind;
v[ii]+=va[ii];
intarziere[i]=v[ii];
}
int maxim=0;
for(int i=1;i<=na;++i)
maxim=max(maxim,v[i]);
cout<<maxim<<" ";
sort(intarziere+1,intarziere+n+1);
for(int i=1;i<=nb;++i)
v[i]=0x7fffffff;
for(int i=n;i>=1;--i)
{
int ind=1;
while(intarziere[i]+vb[ind]>v[ind] and ind<nb)
++ind;
if(v[ind]==0x7fffffff)
maxx[ind]=intarziere[i]+vb[ind];
v[ind]=intarziere[i];
}
maxim=0;
for(int i=1;i<=nb;++i)
if(maxx[i]!=0)
maxim=max(maxim,maxx[i]);
cout<<maxim;
return 0;
}