Pagini recente » Cod sursa (job #1554988) | Cod sursa (job #72186) | Cod sursa (job #777090) | Cod sursa (job #2181456) | Cod sursa (job #1855530)
#include <fstream>
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
struct generatoare {
int energie, cost;
};
int G, W, sol = 9999999, index;
generatoare V[1001];
int sume[10001];
void rucsac();
int main()
{
fi >> G >> W;
for (int i = 1;i <= G;i++)
fi >> V[i].energie >> V[i].cost;
rucsac();
fo << sol - 1;
return 0;
}
void rucsac()
{
sume[0] = 1;
int start = 0;
for (int j = 1;j <= G;j++)
{
for (int i = start;i >= 0;i--)
{
if (sume[i] != 0)
{
int x = i + V[j].energie;
int cost = sume[i] + V[j].cost;
if (sume[x] > cost || sume[x] == 0)
sume[x] = cost;
if (x>start)
start = x;
if (x >= W)
if (cost < sol)
sol = cost;
}
}
if (start >= W)
start = W;
}
return;
}