Pagini recente » Cod sursa (job #2317275) | Cod sursa (job #2429781) | Cod sursa (job #1861530) | Cod sursa (job #1471474) | Cod sursa (job #3184537)
#include <fstream>
#include <string.h>
using namespace std;
ifstream in("rucsac.in");
ofstream fout("rucsac.out");
int n, g, greutate, val;
const int WMAX = 1e4 + 1;
const int inf = -0x3f3f3f3f;
int dp[WMAX];
int main()
{
in >> n >> g;
memset(dp, -1, sizeof(dp));
dp[0] = 0;
int max = 0;
for (int i = 0; i < n; ++i)
{
in >> greutate >> val;
for (int j = g; j >= 0; --j)
{
int prev = j - greutate;
if (prev >= 0 && dp[prev] + val > dp[j])
dp[j] = dp[prev] + val;
if (dp[j] != inf && dp[j] > max)
max = dp[j];
}
}
fout << max << '\n';
return 0;
}