#include <bits/stdc++.h>   using namespace std;   const int maxx = 1e5 + 7;   const int Inf = 1 << 30;   const long long INF = 1ll << 60;   int n;   int a[maxx];   vector<int> vec;   int pos[maxx];   map<int, int> mp;   int ans;   int main() {     cin >> n;     for (int i = 1; i <= n; i++) cin >> a[i];     int cnt = 0;     int t = 0;     bool flg = 0;     for (int i = 1; i <= n; i++) {       if (a[i] == 1) {         if (!flg) pos[++t] = i;         flg = 1;         cnt++;       } else {         if (cnt) vec.push_back(cnt);         cnt = 0;         flg = 0;       }       if (i == n && a[i] == 1) vec.push_back(cnt);     }     for (int i = 0; i < vec.size(); i++) mp[pos[i + 1]] = vec[i];     int pp = pos[1] - 1;     int minx = min(pp, mp[pos[1]]);     ans = max(ans, 2 * minx);     for (int i = 1; i <= t; i++) {       int tmp;       if (i == 1)         tmp = minx;       else         tmp = pos[i] - (pos[i - 1] + mp[pos[i - 1]]);       int min1 = min(tmp, mp[pos[i]]);       int min2 = min(tmp, mp[pos[i - 1]]);       int minT = max(min1, min2);       ans = max(ans, 2 * minT);     }     int dd = n - (pos[t] + mp[pos[t]] - 1);     int min0 = min(dd, mp[pos[t]]);     ans = max(ans, 2 * min0);     cout << ans << endl;   }   