Pagini recente » Cod sursa (job #1527918) | Cod sursa (job #1015809) | Cod sursa (job #2195247) | Cod sursa (job #2703135) | Cod sursa (job #2507435)
#include <bits/stdc++.h>
#define nmax 10005
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int dp[nmax / 2][nmax], n, g, gr, p;
int main()
{
fin >> n >> g;
for (int i = 0; i <= n; i++)
for (int j = 1; j <= g; j++)
dp[i][j] = -1;
for (int i = 1; i <= n; i++)
{
fin >> gr >> p;
for (int j = 1; j <= g; j++)
{
if ((j - gr) >= 0 && (dp[i - 1][j - gr]) != -1)
{
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - gr] + p);
}
else dp[i][j] = dp[i-1][j];
}
}
fout << dp[n][g];
return 0;
}