Cod sursa(job #1126533)

Utilizator Raducu1992Raducu Raducu1992 Data 27 februarie 2014 00:28:20
Problema Gutui Scor 90
Compilator c Status done
Runda teme_upb Marime 1.31 kb
#include <stdio.h>
#include<stdlib.h>
struct gutui
{
    int inaltime;
    int greutate;
};
struct gutui *v;
void scrieDate(int s)
{
    FILE *f = fopen("gutui.out","w");
     fprintf(f,"%d",s);
     fclose(f);
}
int main()
{
    int N,H,U,elem,aux,i,vecGutui[100001],gutui_culese=0;
    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);
        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;
}