这是第一题的: #include <bits/stdc++.h> using namespace std; const int N = 100005; int n; int a[N]; int s[N]; int all; int maxadd; int q[N]; int t = 0,h = 1; int main(){     cin>>n;     for(int i=1;i<=n;i++) cin>>a[i];     for(int i=1;i<=n;i++) {       s[i]=s[i-1]+a[i];     }     all = s[n];     int l = 1,r = 1;     for(;l<=n;l++) {         if(!a[l]) break;     }     r = l;     while(l<=n&&r<=n) {                  int call = r-l+1;         int c1 = s[r]-s[l-1];         int c0 = call-c1;         int addd = c0-c1;         maxadd = max(maxadd,addd);         if(c1>=c0) {           r++;l = r;continue;         }else if(c1==call){             while(l<=n&&l==r&&(s[r]-s[l-1])==(r-l+1)){ //l==r             l++,r++;             // call = r-l+1;             // c1 = s[r]-s[l-1];             // c0 = call-c1;           }         }else r++;                  // cout<<l<<" "<<r<<endl;     }     cout<<all+maxadd<<endl;     return 0;  }