Pagini recente » Cod sursa (job #1873136) | Cod sursa (job #2476238) | Cod sursa (job #2754750) | Cod sursa (job #449987) | Cod sursa (job #1281175)
#include<cstdio>
#include<algorithm>
using namespace std;
#define Nmax 5001
#define Gmax 10001
int D[2][Gmax]={0},G[Gmax],P[Gmax];
int main ()
{
int n,gmax;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d ",&n,&gmax);
for(int i=1; i<=n; i++)
scanf("%d %d\n",&G[i],&P[i]);
for(int i=1;i<=n;i++)
{
for(int j=1; j<=gmax; j++)
if(j<G[i]) D[1][j]=D[0][j];
else D[1][j]=max(D[0][j],D[0][j-G[i]]+P[i]);
for(int j=1;j<=gmax;j++)
swap(D[0][j],D[1][j]);
}
printf("%d\n",D[0][gmax]);
return 0;
}