
int n,sum;
int a[MAXN];
long dp[MAXN][MAXS];
long solve(){
int i, j;
for(i =0; i
}
for(j=1; j
for(i=1; i<=n; i++){
for(j=0; j<=sum; j++){
if(a[i]<=j){
dp[i][j] = max(dp[i-1][j-a[i]]+dp[i-1][j], dp[i-1][j]);
}else{
dp[i][j] = dp[i-1][j];
}
}
}
}
return dp[n][sum];
}
int main(){
scanf("%d%d",&n,&sum);
for(int i=1; i<=n; i++){
scanf("%d", &a[i]);
}
printf("%ldn", solve());
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)