Pagini recente » Cod sursa (job #3178368) | Cod sursa (job #2599575) | Cod sursa (job #1410383)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int N, G, W, P;
int dp[10005]; // dp[i] - profitul maxim, avand greutatea i
int main()
{
fin >> N >> G;
for (int i = 1; i <= N; ++i)
dp[i] = -1;
for (int i = 1; i <= N; ++i)
{
fin >> W >> P;
for (int j = G; j >= W; --j)
if (dp[j - W] != -1)
dp[j] = max(dp[j], dp[j - W] + P);
}
int best = 0;
for (int i = 0; i <= G; ++i)
best = max(best, dp[i]);
fout << best << '\n';
fin.close();
fout.close();
return 0;
}