Pagini recente » Cod sursa (job #2266179) | Cod sursa (job #1795479) | Cod sursa (job #2450922) | Cod sursa (job #250584) | Cod sursa (job #536243)
Cod sursa(job #536243)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
struct generator{
double e, c;
};
int g, en;
double cmin, s;
generator gen[1001];
double ef[1001];
int main()
{
bool ord;
double aux;
ifstream fin("energii.in");
ofstream fout("energii.out");
fin>>g>>en;
for (int i=0; i<g; i++){
fin>>gen[i].e>>gen[i].c;
s+=gen[i].c;
ef[i]=gen[i].e/gen[i].c;
}
if (s<en){
fout<<"-1";
return 0;
}
do{
ord=true;
for (int i=0; i<g-1; i++)
if (ef[i]<ef[i+1]){
aux=ef[i];
ef[i]=ef[i+1];
ef[i+1]=aux;
aux=gen[i].e;
gen[i].e=gen[i+1].e;
gen[i+1].e=aux;
aux=gen[i].c;
gen[i].c=gen[i+1].c;
gen[i+1].c=aux;
ord=false;
}
}while (ord==false);
for (int i=0; i<g; i++){
if (en>0) {
en-=gen[i].e;
cmin+=gen[i].c;
}
if (en<=0) break;
}
fout<<cmin;
//for (int i=0; i<g; i++)
//cout<<ef[i]<<" "<<gen[i].e<<" "<<gen[i].c<<endl;
}