/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner sc
= new Scanner
(System.
in); int size = sc.nextInt();
int[] arr =new int[size];
for(int i = 0;i<size;i++){
arr[i] = sc.nextInt();
}
int result = maxLen(arr);
}
public static int maxLen(int[] arr) {
HashMap
<Integer, Integer
> present
= new HashMap
<>();
present.put(0, -1);
int sum = 0;
int maxLongestSubArray = 0;
for (int i = 0; i < arr.length; i++) {
sum += (arr[i] == 0) ? -1 : 1;
if (present.containsKey(sum)) {
int currentLongestSubArray = i - present.get(sum);
maxLongestSubArray
= Math.
max(currentLongestSubArray, maxLongestSubArray
); } else {
present.put(sum, i);
}
}
return maxLongestSubArray;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCBzaXplID0gc2MubmV4dEludCgpOwogCgkJaW50W10gYXJyID1uZXcgaW50W3NpemVdOwogCgkJZm9yKGludCBpID0gMDtpPHNpemU7aSsrKXsKCQkJYXJyW2ldID0gc2MubmV4dEludCgpOwoJCX0KCgkJaW50IHJlc3VsdCA9IG1heExlbihhcnIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQpOwoKCX0KCXB1YmxpYyBzdGF0aWMgaW50IG1heExlbihpbnRbXSBhcnIpIHsKICAgICAgICAKICAgICAgICBIYXNoTWFwPEludGVnZXIsIEludGVnZXI+IHByZXNlbnQgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgCiAgICAgICAgcHJlc2VudC5wdXQoMCwgLTEpOyAKICAgICAgICAKICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICBpbnQgbWF4TG9uZ2VzdFN1YkFycmF5ID0gMDsKICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAKICAgICAgICAgICAgc3VtICs9IChhcnJbaV0gPT0gMCkgPyAtMSA6IDE7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAocHJlc2VudC5jb250YWluc0tleShzdW0pKSB7CiAgICAgICAgICAgICAgICBpbnQgY3VycmVudExvbmdlc3RTdWJBcnJheSA9IGkgLSBwcmVzZW50LmdldChzdW0pOwogICAgICAgICAgICAgICAgbWF4TG9uZ2VzdFN1YkFycmF5ID0gTWF0aC5tYXgoY3VycmVudExvbmdlc3RTdWJBcnJheSwgbWF4TG9uZ2VzdFN1YkFycmF5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHByZXNlbnQucHV0KHN1bSwgaSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIG1heExvbmdlc3RTdWJBcnJheTsKICAgIH0KfQ==