Pagini recente » Cod sursa (job #1161442) | Cod sursa (job #2654099) | Cod sursa (job #2719317) | Cod sursa (job #2235611) | Cod sursa (job #737491)
Cod sursa(job #737491)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
struct generator
{
int energy,cost;
double raport;
};
vector<generator> v;
int TotalEnergy,SumOfEnergy=0,TotalCost=0,NumberOfG,CurrentCost,CurrentEnergy;
bool cmp(generator one, generator two)
{
return one.raport>two.raport;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int i;
scanf("%i %i", &NumberOfG,&TotalEnergy);
for(i=0;i<NumberOfG;i++)
{
scanf("%i %i", &CurrentEnergy,&CurrentCost);
generator New;
New.energy=CurrentEnergy;
New.cost=CurrentCost;
New.raport=(CurrentEnergy*1.0) / CurrentCost;
v.push_back(New);
}
sort(v.begin(),v.end(),cmp);
bool ok=false;
for(i=0;i<v.size();i++)
{
SumOfEnergy+=v[i].energy;
TotalCost+=v[i].cost;
if(SumOfEnergy>=TotalEnergy)
{
ok=true;
break;
}
}
if(ok) printf("%i\n", TotalCost);
else printf("-1");
//scanf("%i", &i);
return 0;
}