Pagini recente » Cod sursa (job #455649) | Cod sursa (job #1407775) | Cod sursa (job #2572193) | Cod sursa (job #1974105) | Cod sursa (job #2478910)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
long long dp[5001];
int main()
{
int n, g;
fin >> n >> g;
for (int i = 1; i <= n; i++) {
long long gr, v;
fin >> gr >> v;
for (int j = g-gr; j >= 1; j--)
if (dp[j] != 0)
dp[j+gr] = max(dp[j+gr], dp[j] + v);
dp[gr] = max(dp[gr], v);
}
int maxx = dp[1];
for (int i = 1; i <= g; i++)
if (dp[i] > maxx)
maxx = dp[i];
fout << maxx;
}