Pagini recente » Cod sursa (job #452351) | Cod sursa (job #3148544) | Cod sursa (job #1987366) | Cod sursa (job #2585485) | Cod sursa (job #711153)
Cod sursa(job #711153)
#include<stdio.h>
#include<stdlib.h>
struct gutuie
{
int inaltime;
int greutate;
};
gutuie G[100000];
int cules[100000];
int compare (const void *a,const void *b)
{
return (*(int *)b- *(int *)a);
}
int main()
{
FILE *f=fopen("gutui.in","rt");
FILE *a=fopen("gutui.out","wt");
int N,H,U,i,ult_completat=-1,suma=0;
fscanf(f,"%i%i%i",&N,&H,&U);
for(i=0;i<N;i++)
fscanf(f,"%i%i",&G[i].inaltime,&G[i].greutate);
qsort(G,N,sizeof(gutuie),compare); //ordonam structura descrescator dupa inaltime
for(i=0;i<N;++i)
if(G[i].inaltime<H)
{
cules[++ult_completat]=G[i].greutate;
H-=U;
}
else if(G[i].greutate > cules[ult_completat] && G[i].inaltime<=H+U)
cules[ult_completat]=G[i].greutate;
for(i=0;i<=ult_completat;i++)
suma+=cules[i];
fprintf(a,"%i",suma);
return 0;
}