Pagini recente » Cod sursa (job #556261) | Cod sursa (job #1709522) | Cod sursa (job #1610607) | Cod sursa (job #443658) | Cod sursa (job #2216221)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define NMAX 5000
#define Gmax 10000
int g[NMAX + 5],v[NMAX + 5];
int dp[Gmax + 5];
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int n,gmax;
scanf("%d%d", &n, &gmax);
for (int i = 1; i <= n; i++)
scanf("%d%d", &g[i], &v[i]);
int maxim = 0;
for (int i = 1; i <= n; i++)
{
for (int j = gmax - g[i]; j >= 0; j--)
{
if (dp[j + g[i]] < dp[j] + v[i])
{
dp[j + g[i]] = dp[j] + v[i];
if (dp[j + g[i]] > maxim)
maxim = dp[j + g[i]];
}
}
}
printf("%d", maxim);
fclose(stdin);
fclose(stdout);
return 0;
}