Cod sursa(job #436205)

Utilizator Elena.Elena Diana Elena. Data 8 aprilie 2010 12:22:35
Problema Gutui Scor 0
Compilator cpp Status done
Runda teme_upb Marime 1.29 kb
#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[MAX];
    //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,"%L %L %L",&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");
     }*/
    
    
    
    
    
    
    fclose(f);
    fclose(p);
    //getchar();
    return 0;
}