View Code
1 #include2 int wi[3420]={ 0},di[3420]={ 0},val[40000]={ 0};//di表示价值也就是各个物体的重量.val为目标。 3 int fmax(int i,int j) 4 { 5 if(i>j)return i; 6 else return j; 7 8 } 9 int main()10 {11 int max,n,i,j;12 scanf("%d%d",&n,&max);13 getchar();14 for(i=1;i<=n;i++)15 scanf("%d%d",&wi[i],&di[i]);16 for(i=1;i<=n;i++)17 for(j=max;j>=0&&(j>=wi[i]);j--)18 {19 val[j]=fmax(val[j],val[j-wi[i]]+di[i]);20 }21 printf("%d\n",val[max]);22 return 0;23 }