Pagini recente » Cod sursa (job #1166391) | Cod sursa (job #662039) | Cod sursa (job #1431376) | Cod sursa (job #2833128) | 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;
}