Pagini recente » Cod sursa (job #1955076) | Cod sursa (job #1168655) | Cod sursa (job #1918231) | Cod sursa (job #1924885) | Cod sursa (job #2292276)
#include <cstdio>
int d[10001];
using namespace std;
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,i,j,smax,max,g,h,p;
scanf("%d%d",&n,&h);
for(i=1;i<=n;++i)
d[i]=-1;
smax=0; max=0;
for(i=1;i<=n;++i){
scanf("%d%d",&g,&p);
for(j=smax;j>=0;--j){
if(d[j]!=-1 && j+g<=h){
if(d[j+g]<d[j]+p){
d[j+g]=d[j]+p;
if(d[j+g]>max)
max=d[j+g];
}
if(j+g>smax)
smax=j+g;
}
}
}
printf("%d\n",max);
return 0;
}