Pagini recente » Cod sursa (job #1529578) | Cod sursa (job #46861) | Cod sursa (job #1863888) | Cod sursa (job #2941945) | Cod sursa (job #2126530)
#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<<0;
return 0;
}
for (int i = keep; i >= 1; i--)
if (sumaenergen-energen[i] >= W)
{
sumaenergen-=energen[i];
sumacost-=cost[i];
}
fout<<sumacost;
return 0;
}