Pagini recente » Cod sursa (job #457167) | Cod sursa (job #3228347) | Cod sursa (job #2326365) | Cod sursa (job #88795) | Cod sursa (job #2126533)
#include <iostream>
#include <fstream>
#define limit 100001
using namespace std;
int G, W, sumacost, sumaenergen, cost[limit], energen[limit], keep;
int main()
{
ifstream fin ("energie.in");
ofstream fout ("energie.out");
fin >> G >> W;
for (int i = 1; i <= G; i++)
fin >> energen[i] >> cost[i];
for (int i = 1; i < G; i++)
for (int j = i + 1; j <= G; j++)
if (cost[i] > cost[j])
{
int var;
var=cost[i];
cost[i]=cost[j];
cost[j]=var;
var=energen[i];
energen[i]=energen[j];
energen[j]=var;
}
for (int i = 1; i <= G; i++)
{
sumacost+=cost[i];
sumaenergen+=energen[i];
if (sumaenergen >= W)
{
keep=i-1;
break;
}
}
if (sumaenergen < W)
{
fout<<"-1";
return 0;
}
for (int i = keep; i >= 1; i--)
if (sumaenergen-energen[i] >= W)
{
sumaenergen-=energen[i];
sumacost-=cost[i];
}
fout<<sumacost;
return 0;
}