Pagini recente » Cod sursa (job #3187150) | Rating Marinica George Cosmin (cosmin1307) | Monitorul de evaluare | Profil Asgari_Armin | Cod sursa (job #585756)
Cod sursa(job #585756)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("fabrica.in","r");
FILE*g=fopen("fabrica.out","w");
int n,na,nb,i,j,tmax,p,c,L;
int A[50005],B[50005],T[50005];
struct heap{
int init;
int crt;
}H[50005],aux;
void urca(int x){
c = x; p = x/2;
while( p != 0 && H[p].crt > H[c].crt ){
swap(H[p],H[c]);
c = p;
p = p / 2;
}
}
void coboara(int x){
int y = 0;
while (x != y)
{
y = x;
if (y*2<=L && H[x].crt > H[2*y].crt) x = y*2;
if (y*2+1<=L && H[x].crt > H[y*2+1].crt) x = y*2+1;
swap(H[x],H[y]);
}
}
int main () {
fscanf(f,"%d %d %d",&n,&na,&nb);
for ( i = 1 ; i <= na ; ++i ){
fscanf(f,"%d",&A[i]);
aux.init = aux.crt = A[i];
H[++L] = aux;
urca(L);
}
for ( i = 1 ; i <= nb ; ++i ){
fscanf(f,"%d",&B[i]);
}
for ( i = 1 ; i <= n ; ++i ){
tmax = H[1].crt > tmax ? H[1].crt : tmax;
H[1].crt = H[1].crt + H[1].init;
coboara(1);
}
fprintf(g,"%d 0\n",tmax);
fclose(f);
fclose(g);
return 0;
}