Pagini recente » Diferente pentru problema/cri intre reviziile 6 si 5 | Cod sursa (job #3351331) | Cod sursa (job #3311675) | Cod sursa (job #3325412) | Cod sursa (job #3342759)
#include <fstream>
using namespace std;
const int NMAX=5000,
GMAX=10000;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
struct obiect{
int g,v;
};
int N,G;
int M[NMAX+1][GMAX+1];
obiect a[NMAX+1];
int main()
{
cin >> N >> G;
for(int i=1;i<=N;i++)
cin >> a[i].g >> a[i].v;
//
for(int i=1;i<=N;i++){
for(int j=0;j<=G;j++){
if(a[i].g>j) M[i][j]=M[i-1][j];
else M[i][j]=max(M[i-1][j],M[i-1][j-a[i].g]+a[i].v);
}
}
cout << M[N][G];
return 0;
}