Pagini recente » Cod sursa (job #309005) | Cod sursa (job #3120411) | Cod sursa (job #818726) | Cod sursa (job #3120437) | Cod sursa (job #1414470)
#include <cstdio>
#define nmax 5005
using namespace std;
int w[nmax],p[nmax],g,n,a[3][2*nmax],k;
void citire()
{
scanf("%d%d",&n,&g);
for(int i=1;i<=n;i++)
scanf("%d%d",&w[i],&p[i]);
}
int maxim(int a,int b)
{
if(a>b)
return a;
return b;
}
void rezolv()
{
k=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=g;j++)
{
if(w[i]<=j)
a[k][j]=maxim(a[!k][j],a[!k][j-w[i]]+p[i]);
else
a[k][j]=a[!k][j];
}
k=!k;
}
//k=!k;
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
rezolv();
printf("%d\n",a[k][g]);
return 0;
}