Pagini recente » Cod sursa (job #1207790) | Cod sursa (job #1313170) | Cod sursa (job #2568432) | Cod sursa (job #416611) | Cod sursa (job #2317845)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int p[1001], w[1001], a[5001];
int main()
{
int G, W;
in >> G >> W;
for (int i = 1; i <= G; ++i)
in >> p[i] >> w[i];
for (int i = 1; i <= W; ++i)
a[i] = 100010;
for (int i = 1; i <= G; ++i)
{
for (int j = W - w[i]; j >= 0; --j)
{
if (a[j + w[i]] < a[j] + p[i])
a[j + w[i]] = a[j] + p[i];
}
for (int j = 1; j <= w[i]; ++j)
{
if (a[j] > p[i])
a[j] = p[i];
}
}
if (a[W] == 100010)
out << -1;
else
out << a[W];
return 0;
}