#include<stdio.h> #include<vector> #include<cstring> using namespace std; int a[1000010]; vector<int> p[2000010]; int main() { int n; scanf("%d",&n); for(int i = 1; i <=n; i++) scanf("%d", &a[i]); int sum = 0; int Max = -999999999; int Min = 999999999; p[1000000].push_back(0); for(int i = 1; i <= n; i++) { if(a[i] == 0) sum++; else sum--; Max = max(sum, Max); Min = min(sum, Min); p[sum + 1000000].push_back(i); } int ans = 0; //printf("%d %d\n", Min, Max); for(int i = Min + 1000000; i <= Max + 1000000; i++) { ans = max(p[i][p[i].size() - 1]-p[i][0], ans); } printf("%d\n", ans); }