Cod sursa(job #436189)

Utilizator Elena.Elena Diana Elena. Data 8 aprilie 2010 11:32:48
Problema Gutui Scor 10
Compilator cpp Status done
Runda teme_upb Marime 1.24 kb
#include <stdio.h>
#include <stdlib.h>
#define MAX 10000
typedef struct{
        int h,g;
        }gutuie;
gutuie x[MAX];

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(){
    int N, H, U;
    int max=0;
    //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,"%d %d %d",&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;
}