Cod sursa(job #437680)

Utilizator andreea03_07Andreea Oprisan andreea03_07 Data 10 aprilie 2010 00:08:39
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 1.22 kb
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main() {
    int N, H, U, h[100000],g[100000],i,s=0,j,n,aux,p[100000],m[100000],x,max;
    FILE *f1,*f2;
    f1 = fopen ("gutui.in", "r");
    f2 = fopen ("gutui.out", "w");
    fscanf(f1, "%d", &N);
    fscanf(f1, "%d", &H);
    fscanf(f1, "%d", &U);
    for ( i = 0; i < N; i++) {
        fscanf(f1, "%d", &h[i]);
        fscanf(f1, "%d", &g[i]);
    }
    
    for ( i = 0; i < N-1; i++)
        for ( j = i+1; j < N; j++)
            if (g[i]<g[j]) {
                           aux = g[i];
                           g[i]=g[j];
                           g[j]=aux;
                           aux=h[i];
                           h[i]=h[j];
                           h[j]=aux;}
    
    //for ( i = 0; i < N; i++) m[0] =0;
    
    p[0] = (H - h[0])/U +1;
    m[(H - h[0])/U +1] = 1;
    for ( i = 1; i < N; i++){
        x = (H - h[i])/U +1;
        max = 0;
        for ( j = x; j > 0; j--)
            if (m[j] == 0 && j >max) max = j;
        p[i]=max;
        m[max]=1;
    }
    
    for ( i = 0; i < N; i++) 
         if (p[i]>0) s=s+g[i];
        
    
    fprintf(f2,"%d",s); 
    fclose(f1);
    fclose(f2);
    
}