Pagini recente » Cod sursa (job #874525) | Cod sursa (job #2537087) | Cod sursa (job #1524930) | Cod sursa (job #720282) | Cod sursa (job #2572531)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int MAX_N = 5000;
const int MAX_G = 10000;
int n, g;
int w[MAX_N + 5], p[MAX_N + 5];
int dp[2][MAX_G + 5];
int main() {
fin >> n >> g;
for (int i = 1; i <= n; i++)
fin >> w[i] >> p[i];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= g; j++) {
dp[i % 2][j] = dp[(i - 1) % 2][j];
if(j - w[i] >= 0)
dp[i % 2][j] = max(dp[(i - 1) % 2][j], dp[(i - 1) % 2][j - w[i]] + p[i]);
}
fout << dp[n % 2][g] << '\n';
return 0;
}