给定一个 N 长数组 {A}, 元素之间 两两不同.
现在要求你找出最长的 连续子序列, 使得这些元素
(modM) 意义下同余, 其中 M≥2.
形式化的说, 在数组中找到最长的 A[L..R],∃M≥2, 使得:
AL≡AL+1≡AL+2≡⋯≡AR(modM)
其中, a≡b(modM) 即是说 a%M=b%M
输出此长度即可.
数据规模
- 1≤n≤2×103
- 1≤ai≤1018
输入格式
第一行一个数字 N。
接下来一行 N 个整数 A1,A2,…,AN。
输出格式
一个数,表示最长连续同余子序列的长度。
样例输入
4
8 2 10 5
样例输出
3
注意到 8,2,10 均为偶数.
bonus1: consider what if N is greater (even 1≤N≤2×105)?
bonus2: consider how to solve the 'subsequence' version.