Pagini recente » Cod sursa (job #542519) | Cod sursa (job #454157) | Cod sursa (job #1580656) | Cod sursa (job #1045034) | Cod sursa (job #849147)
Cod sursa(job #849147)
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
typedef struct genereator
{
int cost;
int energie_pr;
float raport;
}
generator;
generator generatoare[1002];
int g,w;
void citire()
{
ifstream f("energii.in");
f>>g;
f>>w;
for(int i=1;i<=g;i++)
{
f>>generatoare[i].energie_pr;
f>>generatoare[i].cost;
generatoare[i].raport = generatoare[i].cost/generatoare[i].energie_pr;
}
f.close();
}
void scriere(int sol)
{
ofstream g("energii.out");
g<<sol;
g.close();
}
/*void insert(generator x, generator v[], int nr_generatoare)
{
int i, j;
for(i = 1; i <= nr_generatoare; ++i)
{
if(x.cost > v[i].cost)
{
for(j = nr_generatoare + 1; j > i; --j)
{
v[j] = v[j - 1];
}
v[i] = x;
break;
}
}
}*/
int main()
{
int i, j;
int nr_generatoare_ins = 0, sol;
generator gen_temp;
float suma;
citire();
for(i = 1; i <= g; ++i)
{
for(j = i + 1; j <= g; ++j)
{
if(generatoare[i].raport > generatoare[j].raport)
{
gen_temp = generatoare[i];
generatoare[i] = generatoare[j];
generatoare[j] = gen_temp;
}
}
}
/*for(i = 1; i <= g; ++i)
insert(generatoare[i], v, ++nr_generatoare_ins);
cout <<"vector ordonat: \n";
for(i = 1; i <= g; ++i)
cout<<" "<<generatoare[i].raport;
cout<<"\n";
*/
suma=0;
for(i = 1; i <= g; ++i)
{
suma += generatoare[i].energie_pr;
if(suma >= w){
sol = generatoare[i].cost;
break;
}
}
cout<<"Solutia este: \n"<<sol;
scriere(sol);
return 0;
}