最长同余子数组

给定一个 NN 长数组 {A}\{A\}, 元素之间 两两不同.

现在要求你找出最长的 连续子序列, 使得这些元素 (modM)\pmod M 意义下同余, 其中 M2M \ge 2.

形式化的说, 在数组中找到最长的 A[L..R],  M2A[L..R],\;\exists M \ge 2, 使得:

ALAL+1AL+2AR(modM)A_L \equiv A_{L + 1} \equiv A_{L + 2} \equiv \cdots \equiv A_R \pmod M

其中, ab(modM)a \equiv b \pmod M 即是说 a%M=b%Ma \% M = b \% M

输出此长度即可.

数据规模

  • 1n2×1031\leq n\leq 2 \times 10 ^ 3
  • 1ai10181 \leq a_i \leq 10^{18}

输入格式

第一行一个数字 NN

接下来一行 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N

输出格式

一个数,表示最长连续同余子序列的长度。

样例输入

4
8 2 10 5

样例输出

3

注意到 8,2,108, 2, 10 均为偶数.


bonus1: consider what if NN is greater (even 1N2×1051\le N \le 2\times 10^5)?

bonus2: consider how to solve the 'subsequence' version.