好水的dp。被hzw嘲讽的省选题。
inline
int read(){
int x=
0,f=
1;char ch=getchar();
while(ch<
'0'||ch>
'9'){
if(ch==
'-')f=-
1;ch=getchar();}
while(ch>=
'0'&&ch<=
'9')
x=
x*10+ch-
'0',ch=getchar();
return x*f;
}
int n,be,
m,a[
51],p=
0;
bool f[
51][N];
int main(){
// freopen(
"a.in",
"r",stdin);
n=
read();be=
read();
m=
read();
for(
int i=
1;i<=n;++i) a[i]=
read();
f[
0][be]=
1;
for(
int i=
1;i<=n;++i)
for(
int j=
0;j<=
m;++j){
if(j+a[i]<=
m&&f[i-
1][j]) f[i][j+a[i]]=
1;
if(j-a[i]>=
0&&f[i-
1][j]) f[i][j-a[i]]=
1;
}
for(
int i=
m;i>=
0;--i)
if(f[n][i]){
printf(
"%d\n",i);
return 0;
}
puts(
"-1");
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-85067.html