Pagini recente » Cod sursa (job #1681705) | Cod sursa (job #796055) | Cod sursa (job #2576326) | Cod sursa (job #1316609) | Cod sursa (job #585678)
Cod sursa(job #585678)
#include<fstream>
#include<algorithm>
#define dmax 100003
using namespace std;
ifstream in("fabrica.in");
ofstream out("fabrica.out");
int n,m,k,c1[dmax],c2[dmax],nrd,ok;
long long t[dmax],x[dmax/2],cp[dmax],mn,mx;
int main()
{
int i,j;
in>>n>>m>>k;
for(i=1; i<=m; i++)
in>>c1[i];
for(i=1; i<=k; i++)
in>>c2[i];
in.close();
sort( c1+1, c1+m+1);
sort( c2+1, c2+k+1);
nrd = 0;
while(nrd < n)
{
mn = 100000;
for(i=1; i<=m; i++)
{
cp[i] = x[i]+c1[i];
if(cp[i] < mn)
mn = cp[i];
}
for(i=1; i<=m; i++)
{ if(cp[i] == mn && nrd+1 <= n)
{ x[i] = cp[i];
nrd++;
t[nrd] = x[i];
}
cp[i] = 0;
}
}
/*for(i=1; i<=n; i++)
out<<t[i]<<" ";
out<<'\n';*/
mx = 0;
for(i=1; i<=n; i++)
if(t[i] > mx)
mx = t[i];
out<<mx<<" ";
for(i=1; i<=k; i++)
x[i]=0;
nrd = 0;
for(j=1; j<=n; j++)
{
mn = 100000;
for(i=1; i<=k; i++)
{
if(x[i] < t[j])
cp[i] = t[j]+c2[i];
else cp[i] = x[i]+c2[i];
if(cp[i] < mn)
mn = cp[i];
}
ok = 1;
for(i=1; i<=k; i++)
{
if(cp[i] == mn && ok)
{ x[i] = cp[i];
t[j] = x[i];
ok = 0;
}
cp[i] = 0;
}
/*for(i=1; i<=k; i++)
out<<x[i]<<" ";
out<<'\n';*/
}
mx = 0;
for(i=1; i<=n; i++)
if(t[i] > mx)
mx = t[i];
out<<mx<<" ";
//for(i=1; i<=n; i++)
//out<<t[i]<<" ";
out.close();
return 0;
}