Pagini recente » Cod sursa (job #131706) | Cod sursa (job #587337) | Cod sursa (job #1618987) | Cod sursa (job #1470495) | Cod sursa (job #2684445)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
struct generator
{
int energie;
int cost;
float raport;
};
bool sortare(generator a, generator b)
{
if(a.raport<b.raport)
return 1;
return 0;
}
int main()
{
ifstream in("energii.in");
ofstream out ("energii.out");
int cost_minim=1000000000;
int cate_generatoare, cost_repornire;
generator generatoare[1005];
in>>cate_generatoare>>cost_repornire;
for(int i=0; i<cate_generatoare; i++)
{
in>>generatoare[i].energie>>generatoare[i].cost;
generatoare[i].raport=(float)generatoare[i].cost/generatoare[i].energie;
}
sort(generatoare,generatoare+cate_generatoare,sortare);
int variabila_cost=0,variabila_energie=0,st=0;
for(int i=0; i<cate_generatoare; i++)
{
variabila_cost+=generatoare[i].cost;
variabila_energie+=generatoare[i].energie;
if(variabila_energie>=cost_repornire)
{
while(variabila_energie>=cost_repornire)
{
cost_minim=min(cost_minim,variabila_cost);
variabila_cost-=generatoare[st].cost;
variabila_energie-=generatoare[st].energie;
st++;
}
}
}
out<<cost_minim;
return 0;
}