Pagini recente » Cod sursa (job #797288) | Cod sursa (job #2315864) | Cod sursa (job #1475979) | Cod sursa (job #203853) | Cod sursa (job #2105825)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
#define maxN 5001
#define maxG 5001
int W[maxN], P[maxN];
int Optim[maxG];
int main()
{
int N,G;
f>>N>>G;
for(int i=0;i<N;i++) f>>W[i]>>P[i];
Optim[0]=0;
int sol=0;
for( int i = 0; 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;
return 0;
}