1 #include<bits/stdc++.h>
2 using namespace std;
3 int n,b,m,maxx,c;
4 bool f[55][1005];
5 int main(){
6 ios::sync_with_stdio(NULL);
7 cin.tie(0);cout.tie(0);
8 cin>>n>>b>>m;f[0][b]=1;
9 for(int i=1;i<=n;i++){
10 cin>>c;
11 for(int j=0;j<=m;j++){
12 if(j>=c){
13 if(f[i-1][j-c])
14 f[i][j]=1;
15 }
16 else if(j+c<=m){
17 if(f[i-1][j+c])
18 f[i][j]=1;
19 }
20 }
21 }maxx=-1;
22 for(int i=m;i>=0;i--)
23 if(f[n][i]){
24 maxx=i;
25 continue;
26 }
27 cout<<maxx;
28
29 return 0;
30}
数字标注了行数
注意第12行的括号和16行的括号,把他们删去,结果会变,请问为什么?