Pagini recente » Cod sursa (job #1613392) | Cod sursa (job #33216) | Cod sursa (job #3144929) | Cod sursa (job #1345171) | Cod sursa (job #436382)
Cod sursa(job #436382)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() //n nr gutui, h inaltimea maxima, u inaltime ridicare
{ FILE *f, *g;
long int n;
float h,u;
float hg[100000] ,wg[100000] ,v[100000];
float min;
long int i;
long int j;
//float f1,f2;
float maxh,maxw;
float x;
long int contor=0;
float greutate=0;
f=fopen("gutui.in","r");
g=fopen("gutui.out","w");
fscanf(f,"%ld",&n);
fscanf(f,"%f",&h);
fscanf(f,"%f",&u);
min=h;
x=h;
for(i=0;i<n;i++)
{fscanf(f,"%f",&hg[i]);
fscanf(f,"%f",&wg[i]);
v[i]=0;
if(hg[i]<min) min=hg[i];}
for(i=0;i<=(h-min)/u;i++)
{//printf("%f\n",(h-min)/u);
maxh=0;
maxw=0;
for(j=0;j<n;j++)
{if(hg[j]<=x)
{if((floor((h-hg[j])/u)!=floor((h-maxh)/u))&&(hg[j]>maxh)&&(v[j]!=1)) {//printf("maxhh=%.0f",maxh);
maxh=hg[j];
maxw=wg[j];
contor=j;}
else
if((floor((h-hg[j])/u)==floor((h-maxh)/u))&&(abs(hg[j]-maxh)<u)&&(wg[j]>maxw)&&(v[j]!=1)) {maxh=hg[j];
maxw=wg[j];
contor=j;}
}
}
v[contor]=1;
//printf("maxh=%.0f\n",maxh);
greutate=greutate+maxw;
//printf("maxw=%.0f\n",maxw);
if (maxh==min) break;
x=x-u;
}
fprintf(g,"%.0f",greutate);
fclose(f);
fclose(g);
return 0;
}