Pagini recente » Cod sursa (job #32137) | Cod sursa (job #2782351) | Cod sursa (job #2467262) | Cod sursa (job #2931758) | Cod sursa (job #167648)
Cod sursa(job #167648)
#include <fstream.h>
#include <iostream.h>
struct gen {
int eng;
int cost;
float rap;
} gnr[10001];
int main() {
int nrgen, enec, i, nrmax; long int suma = 0, cost = 0;
struct gen {
int eng;
int cost;
float rap;
} gnr[10001];
ifstream f("energii.in");
ofstream fout("energii.out");
f>>nrgen>>enec;
for (i = 0; i < nrgen; i++) {
f>>gnr[i].eng>>gnr[i].cost;
gnr[i].rap = gnr[i].eng/gnr[i].cost;
suma += gnr[i].eng;
cost += gnr[i].eng;
}
if (suma < enec) {
fout<<"-1";
return 0;
}
else if (suma == enec) {
fout<<cost;
return 0;
}
suma = cost = 0;
do {
nrmax = 0;
for (i = 0; i < nrgen-1; i++)
if (nrmax<gnr[i].rap)
nrmax = i; cout<<i<<" ";
if (suma + gnr[i].eng > enec)
break;
gnr[i].rap = 0;
cost += gnr[i].cost;
suma += gnr[i].eng;
}
while (suma < enec);
if (suma < enec)
for (i = 0; i < nrgen-1; i++)
if (suma + gnr[i].eng >= enec)
if (gnr[i].cost < nrmax)
nrmax = gnr[i].cost;
cost += nrmax;
fout<<cost;
return 0;
}