Pagini recente » Cod sursa (job #1137976) | Cod sursa (job #304852) | Cod sursa (job #1886450) | Cod sursa (job #201722) | Cod sursa (job #2630864)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, gmax;
int main()
{
fin >> n >> gmax;
vector<int> greutate(n), profit(n);
for (int i = 0; i < n; i++)
{
fin >> greutate[i] >> profit[i];
}
vector<vector<int>> dp(2, vector<int>(gmax + 1));
int l = 0;
for (int i = 1; i <= n; i++, l = 1 - l)
{
for (int j = 1; j <= gmax; j++)
{
dp[l][j] = dp[1 - l][j];
if (j >= greutate[i - 1])
{
dp[l][j] = max(dp[l][j], dp[1 - l][j - greutate[i - 1]] + profit[i - 1]);
}
}
}
fout << dp[1 - l][gmax];
}