Pagini recente » Cod sursa (job #1758535) | Cod sursa (job #528376) | Cod sursa (job #345285) | Cod sursa (job #632792) | Cod sursa (job #436347)
Cod sursa(job #436347)
#include<stdio.h>
#include<stdlib.h>
unsigned long n;
double h,u,g=0;
double p[100000][2];
FILE*f;
void citire(void)
{
unsigned long i;
f=fopen("gutui.in","r");
fscanf(f,"%u%lf%lf",&n,&h,&u);
for(i=0;i<n;i++)
fscanf(f,"%lf%lf",&p[i][0],&p[i][1]);
fclose(f);
}
void afisare(void)
{
unsigned long i;
printf("%u %.0f %.0f\n",n,h,u);
for(i=0;i<n;i++)
printf("%.0f %.0f\n",p[i][0],p[i][1]);
}
int ajung()
{
unsigned long i;
for(i=0;i<n;i++)
if(h>=p[i][0])
{//printf("gasesc\n");
return 1;}
//printf("nu gasesc\n");
return 0;
}
void culeg()
{
double cmg=0,aux=h;
unsigned long pozitie=-1,i;
do
{
aux-=u;
for(i=0;i<n;i++)
if(aux<=p[i][0]&&p[i][0]<=h&&p[i][1]>cmg)
{
cmg=p[i][1];
pozitie=i;
}
}while(!cmg);
h-=u;
p[pozitie][1]=0;
//printf("culeg pe %u\n",pozitie);
//printf("pot ajunge la inaltimea %f\n",h);
g+=cmg;
}
void la_cules(void)
{
while(ajung()==1)
culeg();
}
int main(void)
{
citire();
afisare();
la_cules();
//printf("am cules %f kg.\n",g);
f=fopen("gutui.out","w");
fprintf(f,"%.0f",g);
fclose(f);
//getchar();
return 0;
}