题目描述
奶牛庄严与奶牛白金在数轴上玩翻转游戏。
一开始,数轴上 $1$ 到 $n$ 的每个位置上都有一个数,要么是 $0$ 要么是 $1$。每次游戏,奶牛庄严会选择一个位置的数字并将其翻转,即 $0$ 变成 $1$,$1$ 变成 $0$。由于他们俩都很喜欢 $1$,所以奶牛庄严隔一段时间就会问奶牛白金,在给定的 $[L,R]$ 区间内,最长的**和等于长度**的区间的长度是多少?
奶牛白金掏出祖传的牛牛牌键盘开始敲代码,但不小心把牛牛牌电脑弄死机了,于是现在这个任务便交给了你(×)。
输入格式
第一行包含一个正整数 $n\ (1\le n\le 10^5)$。
第二行包含 $n$ 个用空格隔开的整数 $a_i\ (0\le a_i\le 1)$,第 $i$ 个整数 $a_i$ 表示初始时数轴上 $i$ 位置的数。
第三行包含一个正整数 $q\ (1\le q\le 10^5)$,表示操作总数。
其后 $q$ 行,每行输入格式满足以下两种其一:
- `1 p`:奶牛庄严将位置 $p$ 的数翻转一次 $1\le p\le n$;
- `2 l r`:奶牛白金需要回答 $[l,r]$ 区间内满足**和等于长度**的区间的最长长度 $(1\le l\le r\le n)$。
输出格式
对于每次操作 `2`,请输出一行一个整数,表示询问的答案。
样例输入 #1
5
1 0 1 1 0
6
2 1 5
1 2
2 1 4
2 2 5
1 3
2 2 5
提示
***Clarification for Sample:***
初始时,数轴的状态为 1 0 1 1 0;
第一次询问,满足 sum=length 的最长区间出现在 $[3,4]$,长度为 $2$;
第二次操作后,状态为 1 1 1 1 0;
第三次询问,最长区间出现在 $[1,4]$,长度为 $4$;
第四次询问,最长区间出现在 $[2,4]$,长度为 $3$;
第五次操作后,状态为 1 1 0 1 0;
第六次询问,最长区间可以是 $[2,2]$ 或 $[4,4]$,长度为 $1$。