Pagini recente » Cod sursa (job #569575) | Cod sursa (job #392014) | Cod sursa (job #3286062) | Cod sursa (job #7596) | Cod sursa (job #2602641)
#include <bits/stdc++.h>
#define maxn 5001
#define maxg 10001
using namespace std;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int W[maxn], P[maxn];
int Optim[maxg];
int main()
{
int N, G;
f >> N >> G;
for (int i = 1; i <= N; ++i) f >> W[i] >> P[i];
Optim[0] = 0;
int sol = 0;
for ( int i = 1; i <= N; ++i)
for ( int j = G - W[i]; j >= 0; --j)
if( Optim[j + W[i]] < Optim[j] + P[i] )
{
Optim[j + W[i]] = Optim[j] + P[i];
if( Optim[j + W[i]] > sol) sol = Optim[j + W[i]];
}
g << sol;
f.close();
g.close();
return 0;
}