Pagini recente » Cod sursa (job #1409638) | Cod sursa (job #84492) | Cod sursa (job #2579503) | Cod sursa (job #1504740) | Cod sursa (job #586091)
Cod sursa(job #586091)
#include<algorithm>
#include<cstdio>
using namespace std;
#include<vector>
#include<queue>
#define DIM 100002
int a[DIM],b[DIM],t1[DIM/2],t2[DIM/2],n,nr1,nr2,sol;
struct cmp
{
bool operator ()(const int &x,const int &y)const
{
return b[x]>b[y];
}
}; priority_queue<int,vector<int>,cmp> h;
void read ()
{
int i;
scanf("%d%d%d",&n,&nr1,&nr2);
for(i=1;i<=nr1;++i)
{
scanf("%d",&t1[i]);
h.push(i);
}
for(i=1;i<=nr2;++i)
scanf("%d",&t2[i]);
}
void solve ()
{
int i,nr;
for(i=1;i<=n;++i)
{
nr=h.top();
h.pop ();
a[i]=b[nr]+t1[nr];
b[nr]=a[i];
h.push(nr);
sol=max(sol,a[i]);
}
printf("%d ",sol);
sol=0;
while(!h.empty())
h.pop ();
for(i=1;i<=nr2;++i)
{
b[i]=0;
h.push (i);
}
sort(1+a,1+a+n);
for(i=1;i<=n;++i)
{
nr=h.top();
h.pop ();
a[i]+=max(b[nr]-a[i],0)+t2[nr];
b[nr]=a[i];
h.push(nr);
sol=max(sol,a[i]);
}
printf("%d\n",sol);
}
int main ()
{
freopen("fabrica.in","r",stdin);
freopen("fabrica.out","w",stdout);
read ();
solve ();
return 0;
}