
解析:
100数据量,两层遍历每个区间,然后前缀和计算1的个数,维护最大值即可。
- #include
- using namespace std;
- #define int long long
- const int N=110;
- int n,a[N],res,sum[N];
- signed main(){
- scanf("%lld",&n);
- for(int i=1;i<=n;i++){
- scanf("%lld",&a[i]);
- sum[i]=sum[i-1]+a[i];
- }
- for(int i=1;i<=n;i++){
- for(int j=i;j<=n;j++){
- int t=j-i+1-sum[j]+sum[i-1];
- res=max(res,sum[n]-sum[j]+sum[i-1]+t);
- }
- }
- printf("%lld",res);
- return 0;
- }