Pagini recente » Cod sursa (job #2954558) | Cod sursa (job #2453056) | Cod sursa (job #751618) | Cod sursa (job #360081) | Cod sursa (job #1275181)
#include <iostream>
#include <fstream>
#include <cstdio>
#define MIN(a, b) ((a < b) ? a : b)
using namespace std;
std::ifstream f("energii.in", std::ifstream::in);
std::ofstream g("energii.out", std::ofstream::out);
int n, w, eg[1010], cg[1010], d[10100], i, j;
int main()
{
f >> n >> w;
for (i = 1; i <= n; i++)
f >> eg[i] >> cg[i];
for (i = 1; i <= w; i++)
d[i] = 1 << 30;
d[0] = 0;
for (i = 1; i <= n; i++)
{
for (j = w; j >= 1; j--)
{
if (j < eg[i])
d[j] = MIN(cg[i], d[j]);
else
d[j] = MIN(d[j - eg[i]] + cg[i], d[j]);
}
}
if (d[w] == 1 << 30)
g << "-1";
else
g << d[w];
return 0;
}