CF1592E Bored Bakry

题目描述

Bakry 厌倦了解决与异或相关的问题,所以他让你帮他解决这个问题。 给定一个长度为 $n$ 的整数数组 $a$,即 $[a_1, a_2, \ldots, a_n]$。 我们称子数组 $a_l, a_{l+1}, a_{l+2}, \ldots, a_r$ 是“好”的,如果满足 $a_l \,\&\, a_{l+1} \,\&\, a_{l+2} \ldots \,\&\, a_r > a_l \oplus a_{l+1} \oplus a_{l+2} \ldots \oplus a_r$,其中 $\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR),$\&$ 表示[按位与运算](https://en.wikipedia.org/wiki/Bitwise_operation#AND)。 请你求出数组 $a$ 的最长“好”子数组的长度。如果不存在“好”子数组,请输出 $0$。

输入格式

第一行包含一个整数 $n$($1 \le n \le 10^6$),表示数组的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^6$),表示数组的元素。

输出格式

输出一个整数,表示最长“好”子数组的长度。如果不存在“好”子数组,输出 $0$。

说明/提示

在第一个样例中,答案为 $2$,因为整个数组是“好”的:$5 \& 6 = 4 > 5 \oplus 6 = 3$。 在第三个样例中,答案为 $4$,其中一个最长的“好”子数组是 $[a_2, a_3, a_4, a_5]$:$1\& 3 \& 3 \&1 = 1 > 1\oplus 3 \oplus 3\oplus 1 = 0$。 由 ChatGPT 4.1 翻译