Pagini recente » Cod sursa (job #1834743) | Cod sursa (job #2294448) | Cod sursa (job #293384) | Cod sursa (job #2843674) | Cod sursa (job #2334450)
#include <iostream>
#include <fstream>
#include <algorithm>
#define smax 50000000
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct generator
{
unsigned eg,cg;
}gen[1001];
bool cmp(generator &a, generator &b)
{
return a.cg < b.cg;
}
int main()
{
unsigned j,i,w,g;
unsigned long s=0,costmin=10000000;
in >> g >> w;
for(i=1;i<=g;i++)
{
in >> gen[i].eg >> gen[i].cg;
s+=gen[i].eg;
}
if(!(s>=w)) out << -1;
else {
sort(gen+1,gen+g+1,cmp);
for(i=g;i>=1;i--)
if(gen[i].eg>=w) costmin = gen[i].cg;
else {
j = 1;
unsigned sumeg = gen[i].eg+gen[j].eg,sumcg = gen[i].cg+gen[j].cg;
j++;
while(sumeg<w && j!=i) {
sumeg+=gen[j].eg;
sumcg+=gen[j].cg;
j++;
}
if(sumeg>=w && costmin>sumcg) costmin = sumcg;
}
out << costmin;
}
return 0;
}