Cod sursa(job #711152)

Utilizator StefanLacheStefan Lache StefanLache Data 11 martie 2012 14:31:03
Problema Gutui Scor 0
Compilator cpp Status done
Runda teme_upb Marime 1 kb
#include<stdio.h>
#include<stdlib.h>
struct gutuie
{
    int inaltime;
    int  greutate;
};
gutuie G[1000];
int cules[1000];
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");
    gutuie G[100];
    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;
}