Pagini recente » Cod sursa (job #67545) | Cod sursa (job #2058211) | Cod sursa (job #313870) | Cod sursa (job #1711550) | Cod sursa (job #2942003)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
int n, wMax;
fin >> n >> wMax;
vector<pair<int, int>> vec(n + 1);
for (int i = 1; i <= n; i++)
fin >> vec[i].first >> vec[i].second;
vector<vector<int>> best(2, vector<int>(wMax + 1, 0));
for (int i = 1; i <= n; i++)
for (int w = 1; w <= wMax; w++)
if (w >= vec[i].first)
best[i%2][w] = max(best[(i - 1) % 2][w], best[(i - 1) % 2][w - vec[i].first] + vec[i].second);
else
best[i%2][w] = best[(i - 1) % 2][w];
fout << best[n % 2][wMax];
return 0;
}