Cod sursa(job #433735)

Utilizator buradaandreiBurada Andrei buradaandrei Data 4 aprilie 2010 09:44:48
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 1.01 kb
#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fi=fopen("gutui.in","r");
    FILE *fo=fopen("gutui.out","w");
    typedef struct gutui {
        int h,g,cules;
    } Gutui;
    Gutui *g,aux;
    int n,h,u,max,total=0,i,j;

    fscanf(fi,"%d %d %d",&n,&h,&u);
    g=(Gutui*)calloc(n,sizeof(Gutui));
    for (i=0;i<n;i++)
        fscanf(fi,"%d %d",&g[i].h,&g[i].g);
    for (i=0;i<n-1;i++)
        for (j=i+1;j<n;j++)
            if (g[j].h>g[i].h) {
                aux=g[i];
                g[i]=g[j];
                g[j]=aux;
            }
    i=0;
    while (i<n) {
        max=0;
        for (;i<n;i++)
            if (g[i].h+u>h) { //daca o sa dispara la pasul k+1
                if (g[i].g>max) {
                    max=g[i].g;
                    //ales=i;
                }
            }
            else break;
        total+=max;
        for (j=0;j<n;j++)
            g[j].h+=u;
    }
    fprintf(fo,"%d",total);
    fclose(fi);
    fclose(fo);
    return 0;
}