Cod sursa(job #905182)

Utilizator alexx9363Mircea Stefan Alexandru alexx9363 Data 5 martie 2013 17:30:45
Problema Energii Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
float nrg,nre,e[10002],c[10002],w[10002],t=0;
int cost=0;
void cit(){
    int i;
    fin>>nrg>>nre;
    for(i=1;i<=nrg;i++){
        fin>>e[i]>>c[i];
        w[i]=c[i]/e[i];
    }
}
void total(){
    int i;
    for(i=1;i<=nrg;i++)
        t=t+e[i];
}
void bubble(){
    int i,j;
    float aux;
    for(j=1;j<=nrg-1;j++)
        for(i=j+1;i<=nrg;i++)
            if(w[j]>w[i]){
                aux=w[j];
                w[j]=w[i];
                w[i]=aux;

                aux=e[j];
                e[j]=e[i];
                e[i]=aux;

                aux=c[j];
                c[j]=c[i];
                c[i]=aux;
            }

}

void problema(){
    int i=1;
    while(nre>0){
        cost=cost+c[i];
        nre=nre-e[i];
        i++;
    }
}

int main(){
    cit();
    total();
    if(t<nre)
        fout<<-1;
    else{
        bubble();
        problema();
        fout<<cost<<'\n';
    }
    fin.close();
    fout.close();
    return 0;
}