Pagini recente » Cod sursa (job #606325) | Cod sursa (job #3178502) | Cod sursa (job #1631948) | Cod sursa (job #1829555) | Cod sursa (job #436217)
Cod sursa(job #436217)
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000
typedef struct{
int h,g;
}gutuie;
int compara_gutuie(const void *a, const void *b)
{
gutuie * aa = (gutuie*) a;
gutuie * bb = (gutuie*) b;
if (aa->h > bb->h) return -1;
if (aa->h < bb->h) return 1;
if (aa->g > bb->g) return -1;
if (aa->g < bb->g) return 1;
return 0;
}
int main(){
long int N, H, U;
int max=0;
gutuie* x;
x=(gutuie*)malloc(N*sizeof(gutuie));
//N=nr de gutui din copac; H=inaltimea la care poate ajunge;
int i;
FILE* f=fopen("gutui.in","r");
FILE* p=fopen("gutui.out","w");
fscanf(f,"%ld %ld %ld",&N,&H,&U);
/* printf("%d %d %d",N,H,U);
printf("\n");*/
for(i=0;i<N;i++){
fscanf(f,"%d %d",&x[i].h,&x[i].g);}
qsort(x,N,sizeof(gutuie),compara_gutuie);
for(i=0;i<N;i++){
if(x[i].h<=100){
max+=x[i].g;
x[i+1].h+=U;}
else i++;}
fprintf(p,"%d",max);
/* for(i=0;i<N;i++){printf("%d %d",x[i].h,x[i].g);
printf("\n");
}*/
free(x);
fclose(f);
fclose(p);
//getchar();
return 0;
}