Pagini recente » Cod sursa (job #1019056) | Cod sursa (job #457480) | Cod sursa (job #2685466) | Cod sursa (job #2749964) | Cod sursa (job #1020156)
#include <stdio.h>
#include<stdlib.h>
struct gutui
{
int inaltime;
int greutate;
};
struct gutui *v;
void Date(int *N,int *H,int *U)
{
int i;
FILE *f = fopen("gutui.in","r");
fscanf(f,"%d %d %d",N,H,U);
v = (struct gutui*)calloc(*N,sizeof(struct gutui));
for(i = 0; i < *N; ++i)
{
fscanf(f,"%d %d",&v[i].inaltime,&v[i].greutate);
}
fclose(f);
}
void scrieDate(int s)
{
FILE *f = fopen("gutui.out","w");
fprintf(f,"%d",s);
fclose(f);
}
int main()
{
int N,H,U,elem,aux,i,vecGutui[100001],gutui_culese=0;
Date(&N,&H,&U);
for(i = 0; i < N; i++)
{
elem = (H - v[i].inaltime) / U;
while( elem >= 0 )
{
if( vecGutui[elem] == 0 )
{
vecGutui[elem] = v[i].greutate;
gutui_culese += v[i].greutate;
elem = -1;
}
else
{
if(vecGutui[elem] < v[i].greutate)
{
aux = vecGutui[elem];
vecGutui[elem] = v[i].greutate;
v[i].greutate = aux;
gutui_culese += vecGutui[elem] - v[i].greutate;
}
}
elem--;
}
}
//printf("%d",gutui_culese);
scrieDate(gutui_culese);
return 0;
}