Pagini recente » Cod sursa (job #1867841) | Cod sursa (job #203361) | Cod sursa (job #3205875) | Cod sursa (job #2784991) | Cod sursa (job #1336777)
#include <iostream>
#include <cstdio>
using namespace std;
int N,Gmax; //int A[10010];//int A[5010][10010];
struct RUCSAC{int G,P;}v[5010];
int A[2][10010];
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int i,j;
scanf("%d%d", &N,&Gmax);
for(i=1; i<=N; i++)
scanf("%d%d", &v[i].G, &v[i].P);
for(i=1; i<=N; i++)
{
for(j=1; j<=Gmax; j++)
{
if(j<v[i].G) A[1][j]=A[0][j];
else
A[1][j]=max(A[0][j],A[0][j-v[i].G]+v[i].P);
}
for(j=1; j<=Gmax; j++) A[0][j]=A[1][j];
}
printf("%d",A[1][Gmax]);
return 0;
}