Pagini recente » Cod sursa (job #648966) | Cod sursa (job #1837167) | Cod sursa (job #1194893) | Cod sursa (job #1818174) | Cod sursa (job #1414456)
#include <cstdio>
#define nmax 5005
using namespace std;
int w[nmax],p[nmax],g,n,a[3][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=1;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;
}