Pagini recente » Cod sursa (job #2363683) | Cod sursa (job #1381584) | Cod sursa (job #1486912) | Cod sursa (job #2836733) | Cod sursa (job #2020637)
#include <bits/stdc++.h>
#define oo 0x3f3f3f3
using namespace std;
int G, W, power[1 << 10], cost[1 << 10];
vector<int>best;
ifstream fin("energii.in");
ofstream fout("energii.out");
int main()
{
fin >> G; fin.get();
fin >> W; best.resize(W + 1, oo);
fin.get();
for (int i = 1; i <= G; ++i)
fin >> power[i] >> cost[i];
best[0] = 0;
for (int i = 1; i <= G; ++i)
{
for (int j = W; j >= power[i]; --j)
if (best[j] > best[j - power[i]] + cost[i])
best[j] = best[j - power[i]] + cost[i];
for (int j = 1; j < power[i]; j++)
if (cost[i] < best[j])
best[j] = cost[i];
}
fout << (best[W] == oo ? -1 : best[W]);
return 0;
}