Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Istoria paginii utilizator/apocalypto | Cod sursa (job #1990757)
#include<cstdio>
const int nmax=10005;
int d[nmax];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,i,j,gr,g,last=0,p;
scanf("%d%d",&n,&gr);
for(i=1;i<=n;++i)
d[i]=-1;
d[0]=0;
for(i=1;i<=n;++i)
{
scanf("%d%d",&g,&p);
for(j=last;j>=0;--j)
{
if(j+g>gr)
continue;
if(d[j]!=-1&&d[j+g]<d[j]+p)
{
d[j+g]=d[j]+p;
if(last<g+j)
last=g+j;
}
}
}
int max=0;
for(i=1;i<=gr;++i)
if(d[i]>max)
max=d[i];
printf("%d",max);
}