Pagini recente » Cod sursa (job #678362) | Cod sursa (job #2140130) | Cod sursa (job #417366) | Cod sursa (job #1633480) | Cod sursa (job #2634792)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstring>>
using namespace std;
int n, g, p[10010], w[10010], pmax[10010];
int main()
{
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
cin >> n;
cin >> g;
for (int i = 1; i <= n; i++)
{
cin >> w[i] >> p[i];
}
for (int i = 1; i <= n; ++i)
{
for (int j = g; j > 0; j--)
{
int new_j = j + w[i];
if (pmax[j] && new_j <=g)
{
if (!pmax[new_j] || pmax[new_j] < pmax[j] + p[i])
{
pmax[new_j] = pmax[j] + p[i];
}
}
}
if (!pmax[w[i]] || pmax[w[i]] < p[i])
{
pmax[w[i]] = p[i];
}
}
int rez = 0;
for (int i = g; i >= 1; i--)
{
if (pmax[i] > rez)
{
rez = pmax[i];
}
}
cout << rez<<"\n";
return 0;
}