Codeforces Round #191 (Div. 2) A. Flipping Game

,

A. Flipping Game

累積和を取って、全ての区間について試せばよい。 必ずひとつの区間を反転させなければならないことに注意。

#!/usr/bin/env python3
n = int(input())
a = list(map(int,input().split()))
b = [0]
for i in range(n):
    b.append(b[i] + a[i])
result = -1
for l in range(n):
    for r in range(l+1,n+1):
        result = max(result, b[n]-b[r] + r-l-(b[r]-b[l]) + b[l])
print(result)