#Lutece2850. 打饭

打饭

Migrated from Lutece 2850 打饭

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

食堂某一自选窗口从左到右摆放了 nn 道菜,荤素一律,三元一盘,十元三盘。

集训队队员都是干饭人,必须打三盘菜才吃得饱。集训队队员赶着去训练,如果每次只选一个菜又得重新排队,所以一次性会打三盘菜。集训队队员不挑食也不讲究,每次都会选择连续三盘菜。一个队员拿走三盘菜后,剩下的菜品会自动向左或向右补齐空位,并保证原顺序不变。比如原有菜品为 1,2,3,4,5,61,2,3,4,5,6,拿走菜品 3,4,53,4,5 后,就剩下菜品 1,2,61,2,6,这三个菜品又是相邻的。

食堂卖饭的小马想知道,给出今天 nn 道菜的荤素,不知道今天有多少集训队队员来食堂吃饭(可能没有人来),也不知道队员想选哪些菜,最坏的情况下剩菜里荤菜和素菜的数量差最大是多少。

为什么小马想要问这么奇怪的问题呢?因为等到一天结束后小马会把剩菜拿去喂狗。但是众所周知,狗吃饭比较讲究荤素搭配膳食平衡,如果荤菜或者素菜过多的话,狗都不吃。

Input

第一行是一个正整数 n (3n105)n\ (3\le n\le 10^5)

第二行是只包含 01 的序列,第 ii 个数字代表第 ii 盘菜的荤素情况,0 为素,1 为荤。

Output

输出一个整数,表示这个最大差值。

Samples

5
00001
3

Resources

The 19th UESTC Programming Contest Preliminary