Pagini recente » Cod sursa (job #1806688) | Cod sursa (job #1635625) | Cod sursa (job #1537089) | Cod sursa (job #2532330) | Cod sursa (job #1980851)
#include <iostream>
#include <fstream>
#define NMAX 5001
#define NMAX1 10001
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int D[NMAX][NMAX1],n,g,w[NMAX],p[NMAX];
int rec(int i,int j)
{
if(i==0) return 0;
if(D[i][j]!=0) return D[i][j];
if(j<w[i]) return D[i-1][j]=rec(i-1,j);
return D[i][j]=max(rec(i-1,j),rec(i-1,j-w[i])+p[i]);
}
int main()
{
in>>n>>g;
for(int i=1; i<=n; i++)
in>>w[i]>>p[i];
out <<rec(n,g);
return 0;
}