Pagini recente » Cod sursa (job #2883163) | Cod sursa (job #784290) | Cod sursa (job #2663533) | Cod sursa (job #2379197) | Cod sursa (job #1126527)
#include <stdio.h>
#include<stdlib.h>
struct gutui
{
int inaltime;
int greutate;
};
struct gutui *v;
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,prima = 0;
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);
elem = (H - v[i].inaltime) / U;
if(prima == 0)
{
prima = -1;
vecGutui[0] = v[i].greutate;
gutui_culese += v[i].greutate;
elem = 0;
}
else{
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;
}