简单的DP.
AC code:
#include <cstdio>
const int N=1010;
int n,bl,ml;
int c[N];
bool f[N][N];
int main(){
scanf("%d%d%d",&n,&bl,&ml);
for(int i=1;i<=n;i++) scanf("%d",&c[i]);
f[0][bl]=1;
for(int i=1;i<=n;i++){
for(int j=0;j<=ml;j++){
if(j-c[i]>=0&&f[i-1][j-c[i]]||j+c[i]<=ml&&f[i-1][j+c[i]]) f[i][j]=1;
}
}
for(int i=ml;i>=0;i--){
if(f[n][i]){
printf("%d",i);
return 0;
}
}
printf("-1");
return 0;
}