Pagini recente » Cod sursa (job #3158326) | Cod sursa (job #1411793) | Cod sursa (job #3004801) | Borderou de evaluare (job #1004865) | Cod sursa (job #2871100)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const string filename = "rucsac";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
int n, cap, g[5005], p[5005], dp[5005][10005];
int main()
{
fin >> n >> cap;
for(int i = 1; i <= n; i++)
fin >> g[i] >> p[i];
for(int i = 1; i <= n; i++)
for(int j = g[i]; j <= cap; j++)
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - g[i]] + p[i]);
int ans = -1;
for(int j = 0; j <= cap; j++)
ans = max(ans, dp[n][j]);
fout << ans << '\n';
return 0;
}