Pagini recente » Cod sursa (job #354589) | Cod sursa (job #2258303) | Cod sursa (job #503663) | Cod sursa (job #2189569) | Cod sursa (job #2223198)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005],w[5005],p[5005];
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,i,j,last=0,maxim=-1;
scanf("%d%d",&n,&g);
for(i=1;i<=g;i++)
d[i]=-1;
for(i=1;i<=n;i++)
{
scanf("%d%d",&w[i],&p[i]);
for(j=last;j>=0;j--)
{
if(j+w[i]<=g)
{
if(d[j]!=-1)
d[j+w[i]]=max(d[j+w[i]],d[j]+p[i]);
if(j+w[i]>last)
last=j+w[i];
}
}
}
for(i=1;i<=g;i++)
maxim=max(maxim,d[i]);
printf("%d",maxim);
return 0;
}