Pagini recente » Cod sursa (job #1616800) | Cod sursa (job #14657) | Cod sursa (job #2781047) | Cod sursa (job #2209977) | Cod sursa (job #2558130)
#include <bits/stdc++.h>
#define NMAX 5005
#define GMAX 10005
#define infile "rucsac.in"
#define outfile "rucsac.out"
using namespace std;
int n, g, p[NMAX], w[NMAX], dp[2][GMAX];
void read()
{
freopen(infile, "r", stdin);
freopen(outfile, "w", stdout);
scanf("%d %d", &n, &g);
for (int i = 0; i < n; i++)
{
scanf("%d %d", &w[i], &p[i]);
}
fclose(stdin);
}
void solve()
{
for (int i = 0; i < g; i++)
{
dp[0][i] = 0;
}
for (int i = 0; i < n; i++)
{
for (int j = 1; j <= g; j++)
{
if (j >= w[i])
dp[1][j] = max(dp[0][j], dp[0][j - w[i]] + p[i]);
else
dp[1][j] = dp[0][j];
}
for (int j = 1; j <= g; j++)
{
dp[0][j] = dp[1][j];
}
}
printf("%d", dp[0][g]);
}
int main()
{
read();
solve();
return 0;
}