Pagini recente » Cod sursa (job #475549) | Cod sursa (job #3174276) | Cod sursa (job #3289003) | Cod sursa (job #122286) | Cod sursa (job #737494)
Cod sursa(job #737494)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
struct generator
{
long energy,cost;
double raport;
};
vector<generator> v;
long 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("%ld %ld", &NumberOfG,&TotalEnergy);
for(i=0;i<NumberOfG;i++)
{
scanf("%ld %ld", &CurrentEnergy,&CurrentCost);
generator New;
New.energy=CurrentEnergy;
New.cost=CurrentCost;
New.raport=((double)CurrentEnergy) / 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("%ld\n", TotalCost);
else printf("-1");
//scanf("%i", &i);
return 0;
}