#CF2049F. MEX OR Mania
MEX OR Mania
F. MEX OR Mania
每个测试用例时间限制: 秒 每个测试用例内存限制: 兆字节
若整数序列 满足
$$\operatorname{mex}(b_1,b_2,\dots,b_n) - \left(b_1 \mid b_2 \mid \dots \mid b_n\right) = 1 $$则称该序列为好序列。 其中, 表示集合 的最小未出现非负整数, 代表按位或运算。
Shohag 拥有一个整数序列 ,他会对序列 执行 次更新操作:
i x —— 将 的值增加 。
请你在每次更新后,求出序列 中**最长好子数组†**的长度。
补充定义
∗ 最小未出现非负整数(MEX): 整数集合 的 MEX 定义为最小的未出现在集合中的非负整数 。
† 子数组: 若数组 可以通过删除数组 开头的若干个元素(可以为 个)、结尾的若干个元素(可以为 个)得到,则 是 的连续子数组。
输入格式
每个测试文件包含多组测试用例。
- 第一行输入测试用例的数量 ()。
- 每组测试用例的格式:
- 第一行输入两个空格分隔的整数 和 ()。
- 第二行输入 个整数 ()。
- 接下来 行,每行格式为
i x(),表示将 增加 。
保证: 所有测试用例的 之和不超过 ,所有测试用例的 之和不超过 。
输出格式
对于每组测试用例,输出 行: 第 行输出第 次更新后,序列 中最长好子数组的长度。
样例输入
2
6 3
0 0 1 0 1 0
6 1
3 2
6 3
3 1
1 3 1
1 1
样例输出
6
3
2
0
样例解释
第一组测试用例
-
第一次更新后,数组变为 。 整个数组是好序列: $\operatorname{mex}([0,0,1,0,1,1]) - (0 \mid 0 \mid 1 \mid 0 \mid 1 \mid 1) = 2 - 1 = 1$。
-
第二次更新后,数组变为 。 子数组 是最长的好子数组。
-
第三次更新后,数组变为 。 子数组 和 均为最长的好子数组。