summaryrefslogtreecommitdiff
path: root/327A/main.cpp
blob: 640a378972d45ee198b78bf6954a193e7e62492f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <vector>

using namespace std;

int main(void){
        int a,b;
        cin>>a;
        vector<int> v1;
        for(int i = 0; i < a; i++){
                cin>>b;
                v1.push_back(b);
        }
        
        int zeroes = 0; 
        int max_zeroes = 0;
        int ones = 0; 
        
        for(int i = 0; i < v1.size(); i++){
                if(v1.at(i) == 0){
                        zeroes++;
                        if(zeroes > max_zeroes){
                                max_zeroes = zeroes;
                        }
                }
                if(v1.at(i) == 1){
                        if(zeroes != 0) zeroes--;
                        if(v1.size() != 1) ones++;
                }
        }
        if(max_zeroes == 0 && v1.size() != 1){
                ones -= 1;
        }
        cout<<ones + max_zeroes; 
        return 0;
}