Pagini recente » Cod sursa (job #455297) | Borderou de evaluare (job #410080) | Borderou de evaluare (job #2126502) | Cod sursa (job #2939017) | Cod sursa (job #432204)
Cod sursa(job #432204)
#include <stdio.h>
#include <stdlib.h>
int main() //n nr gutui, h inaltimea maxima, u inaltime ridicare
{ FILE *f, *g;
int n,h,u;
int hg[100000] ,wg[100000] ,v[100000];
int max=0;
int min=h;
int i;
int j;
int maxh,maxw;
int x=h;
int contor;
int d=h/u;
int greutate=0;
f=fopen("gutui.in","r");
g=fopen("gutui.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&h);
fscanf(f,"%d",&u);
for(i=0;i<n;i++)
{fscanf(f,"%d",&hg[i]);
fscanf(f,"%d",&wg[i]);}
for(i=0;i<n;i++)
v[i]=0;
for(i=0;i<n;i++)
if(hg[i]<min) min=hg[i];
printf("%d\n\n",min);
for(i=0;i<=(h-min)/u;i++)
{maxh=min;
maxw=0;
for(j=0;j<n;j++)
{if(hg[j]<=x)
{if((hg[j]-maxh>=u)&&(v[j]!=1)) {maxh=hg[j];
maxw=wg[j];
contor=j;}
else
if((abs(hg[j]-maxh)<u)&&(wg[j]>maxw)&&(v[j]!=1)) {maxh=hg[j];
maxw=wg[j];
contor=j;}
}
}
v[contor]=1;
printf("%d %d\n",maxh,maxw);
greutate=greutate+maxw;
x=x-u;
}
printf("\n%d\n",greutate);
for(i=0;i<n;i++)
printf("%d ",v[i]);
fprintf(g,"%d",greutate);
fclose(f);
fclose(g);
system("PAUSE");
return 0;
}