Cod sursa(job #1121616)

Utilizator yoyoisitm Ionescu Andrei yoyois Data 25 februarie 2014 13:24:41
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <cstdio>
using namespace std;

FILE *f = fopen("energii.in", "r");
ofstream G("energii.out");
    int g,w,e[1002],c[1002],sol[1002],it,ln;
    float rap[1002],maxi=1;
int main()
{
    fscanf(f,"%d%d",&g,&w);

    for(int i=1;i<=g;i++)
    {
        fscanf(f,"%d%d",&e[i],&c[i]);
        rap[i]=(float)e[i]/(float)c[i];
    }
    int total=0;
    do{
        maxi=0;
    for(int i=1;i<=g;i++)
    {
        if(rap[i]>maxi){ it=i; maxi=rap[i];}
    }
    if(maxi>0){
    sol[++ln]=it;
    rap[it]=0;
    total+=e[it];}
    }while(total<w&&maxi!=0);
    int dif = total-w;
    for(int i=g;i>0;i--)
    if(sol[i]<dif){ sol[i]=0; dif-=e[i];}
int cost=0;
for(int i=1;i<=ln;i++) cost+=c[sol[i]];
G<<cost;

    return 0;
}