Pagini recente » Cod sursa (job #190602) | Cod sursa (job #1355822) | Cod sursa (job #1953180) | Cod sursa (job #820326) | Cod sursa (job #2449624)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
struct generator
{
int e;
int c;
};
generator v[1001];
int cost[1001];
int prod[1001];
bool compare(generator a, generator b)
{
if(a.c!=b.c)
return a.c < b.c;
return a.e > b.e;
}
int main()
{
int g, w, poz=0, minim=10011002;
in>>g>>w;
for(int i=1; i<=g; i++)in>>v[i].e>>v[i].c;
sort(v+1,v+g+1,compare);
for(int i=1; i<=g; i++)
{
if(prod[i-1]<w && v[i].e<w)
{
prod[i]=prod[i-1]+v[i].e;
cost[i]=cost[i-1]+v[i].c;
}
else
{
prod[i]=v[i].e;
cost[i]=v[i].c;
}
out<<prod[i]<<" "<<cost[i]<<'\n';
}
for(int i=1; i<=g; i++)
if(prod[i]>=w && cost[i]<minim)
{
minim=cost[i];
poz=i;
}
if(poz==0)out<<"-1";
else out<<cost[poz];
in.close();
out.close();
return 0;
}