Pagini recente » Cod sursa (job #375680) | Cod sursa (job #12092) | Cod sursa (job #3170669) | Cod sursa (job #811708) | Cod sursa (job #2299834)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int dp[5005][10005];
vector <pair <int, int> > V;
int main()
{
int n, g;
fin >> n >> g;
V.push_back(pair <int, int> (0, 0));
for (int i = 1; i <= n; i ++) {
int a, b;
fin >> a >> b;
V.push_back(pair <int, int> (a, b));
dp[i][a] = b;
}
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= g; j ++) {
if (j - V[i].first < 0) dp[i][j] = dp[i - 1][j];
else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - V[i].first] + V[i].second);
}
}
fout << dp[n][g];
return 0;
}