Pagini recente » Cod sursa (job #2214618) | Cod sursa (job #1389628) | Cod sursa (job #1064628) | Cod sursa (job #2320744) | Cod sursa (job #2401261)
#include <cstdio>
using namespace std;
const int NMAX=10000;
int d[NMAX+5];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,G,i,j,p,g,last,ans;
scanf("%d%d",&n,&G);
for(i=1;i<=G;++i)
d[i]=-1;
last=0;
for(i=1;i<=n;++i)
{
scanf("%d%d",&g,&p);
if(g>G)
continue;
for(j=last;j>=0;--j)
{
if(j+g>G||d[j]==-1)
continue;
if(d[j]+p>d[g+j])
{
d[g+j]=d[j]+p;
if(g+j>last)
last=g+j;
}
}
}
ans=0;
for(i=0;i<=last;++i)
if(ans<d[i])
ans=d[i];
printf("%d\n",ans);
return 0;
}