Pagini recente » Cod sursa (job #465782) | Cod sursa (job #696198) | Cod sursa (job #983659) | Cod sursa (job #3122500) | Cod sursa (job #586176)
Cod sursa(job #586176)
#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,bun,t1,t2;
long long t[dmax],x[dmax/2],cp,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);
for(j=1; j<=n; j++)
{
mn = -1;
for(i=1; i<=m; i++)
{
cp = x[i]+c1[i];
if(cp < mn || mn == -1)
{ mn = cp;
bun = i;
}
else if(cp == mn && j!=n)
{
if(t[j+1] > x[bun])
t1 = t[j+1]+c2[bun];
else t1 = x[bun]+c2[bun];
if(t[j+1] > x[i])
t2 = t[j+1]+c2[i];
else t2 = x[i]+c2[i];
if(t2 > t1)
bun = i;
}
cp = 0;
}
x[bun] = mn;
t[j] = x[bun];
}
/*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<=m; i++)
x[i]=0;
nrd = 0;
for(j=1; j<=n; j++)
{
mn = -1;
for(i=1; i<=k; i++)
{
if(x[i] < t[j])
cp = t[j]+c2[i];
else cp = x[i]+c2[i];
if(cp < mn || mn == -1)
{ mn = cp;
bun = i;
}
cp = 0;
}
x[bun] = mn;
t[j] = x[bun];
/*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;
}