Pagini recente » Cod sursa (job #561772) | Cod sursa (job #947482) | Cod sursa (job #1046574) | Cod sursa (job #484715) | Cod sursa (job #1423139)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005],g[5005],p[5005];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,gmax;
scanf("%d%d",&n,&gmax);
for(register int i=1; i<=n; ++i)
scanf("%d%d",&g[i],&p[i]);
int smax=0;
for(register int i=1; i<=gmax; ++i)
d[i]=-1;
for(register int i=1; i<=n; ++i)
{
for(register int j=smax; j>=0; --j)
if (j+g[i]<=gmax)
if (d[j]!=-1)
{
d[j+g[i]]=max(d[j+g[i]],d[j]+p[i]);
smax=max(smax,j+g[i]);
}
}
smax=0;
for(register int i=1; i<=gmax; ++i)
smax=max(smax,d[i]);
printf("%d\n",smax);
return 0;
}