Cod sursa(job #1754042)

Utilizator radu9876Radu Sirghe radu9876 Data 7 septembrie 2016 14:47:42
Problema Energii Scor 45
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <stdlib.h>

int main(){
    int n,e,r=0,i;
    FILE *in;
    in=fopen("energii.in","r");
    fscanf(in,"%d %d",&n,&e);
    int en[n],c[n];
    for(i=0;i<n;i++){
        fscanf(in,"%d %d",&en[i] /*energie*/ ,&c[i] /*cost*/ );
    }
    fclose(in);
    while(e>0){
        int min=n,val=0;
        for(i=0;i<n;i++){
            if(e-en[i]<=0 && e-en[i]>=val) val=e-en[i];
        }
        for(i=0;i<n;i++){
            if(en[i]>-1){
                min=i;
                break;
            }
        }
        if(min==n){r=-1;break;}
        for(i=1;i<n;i++){
            if(en[i]>-1) if(c[min]*en[i]>c[i]*en[min]) min=i;
        }
        e=e-en[min];
        r=r+c[min];
        en[min]=-1;
    }
    FILE *out;
    out=fopen("energii.out","w");
    fprintf(out,"%d",r);
    return 0;
}