Pagini recente » Cod sursa (job #802368) | Cod sursa (job #2147091) | Cod sursa (job #1259045) | Cod sursa (job #2842858) | Cod sursa (job #1189117)
#include <fstream>
using namespace std;
const int Nmax = 5005;
const int Gmax = 10005;
int dp[Gmax];
int main()
{
int N, G, w, p;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
f >> N >> G;
dp[0] = 0;
for (int i = 1; i <= G; i++)
dp[i] = -1;
int best = 0;
for (int i = 0; i < N; i++)
{
f >> w >> p;
for (int x = G-w; x >= 0; x--)
if (dp[x] != -1 && dp[x] + p > dp[x+w])
dp[x+w] = dp[x] + p;
}
for (int i = G; i >= 0; i--)
if (dp[i] > best)
best = dp[i];
g << best << '\n';
return 0;
}