Pagini recente » Cod sursa (job #1005317) | Cod sursa (job #2396208) | Cod sursa (job #1386954) | Cod sursa (job #3156927) | Cod sursa (job #1126550)
#include <stdio.h>
#include<stdlib.h>
struct gutui
{
int inaltime;
int greutate;
};
struct gutui *v;
int gutui_culese = 0,vecGutui[100001];
void scrieDate(int s)
{
FILE *f = fopen("gutui.out","w");
fprintf(f,"%d",s);
fclose(f);
}
void cautLoc(int gretateaMea,int capat)
{
int i,aux;
for( i = capat ; i >= 0; --i )
{
if( vecGutui[i] < gretateaMea )
{
aux = vecGutui[i];
vecGutui[i] = gretateaMea;
gretateaMea = aux;
gutui_culese += vecGutui[i] - gretateaMea;
}
}
}
int main()
{
int N,H,U,elem,aux,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);
elem = (H - v[i].inaltime) / U;
while( 1 )
{
if( vecGutui[elem] == 0 )
{
vecGutui[elem] = v[i].greutate;
gutui_culese += v[i].greutate;
break;
}
else
{
cautLoc(v[i].greutate,elem);
break;
}
}
}
//printf("%d",gutui_culese);
scrieDate(gutui_culese);
return 0;
}