Cod sursa(job #1020115)

Utilizator Raducu1992Raducu Raducu1992 Data 1 noiembrie 2013 18:30:26
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 1.49 kb
#include <stdio.h>
#include<stdlib.h>
struct gutui
{
    int inaltime;
    int greutate;
};
struct gutui *v;
void Date(int *N,int *H,int *U)
{
    int max_gutui,i;
    FILE *f = fopen("gutui.in","r");
    fscanf(f,"%d %d %d",N,H,U);
    v = (struct gutui*)calloc(*N,sizeof(struct gutui));
    for(i = 0; i < *N; ++i)
    {
        fscanf(f,"%d %d",&v[i].inaltime,&v[i].greutate);
    }
    fclose(f);
}
void scrieDate(int s)
{
    FILE *f = fopen("gutui.out","w");
     fprintf("%d",s);
     fclose(f);
}
int main()
{
    int N,H,U,elem,aux,i,*vecGutui,gutui_culese=0;
    Date(&N,&H,&U);
    vecGutui = (int*)calloc((H/U+1),sizeof(int));
     for(i = 0; i < N; i++)
     {
        elem = (H - v[i].inaltime) / U;
            while( elem >= 0 )
            {
                if( vecGutui[elem] == 0 )
                {
                    vecGutui[elem] = v[i].greutate;
                    gutui_culese += v[i].greutate;
                    elem = -1;
                }
                else
                {
                    if(vecGutui[elem] < v[i].greutate)
                    {
                        aux = vecGutui[elem];
                        vecGutui[elem] = v[i].greutate;
                        v[i].greutate = aux;
                        gutui_culese += vecGutui[elem] - v[i].greutate;
                    }
                }
                elem--;
            }
    }
    //printf("%d",gutui_culese);
    scrieDate(gutui_culese);
 return 0;
}