2387: 最长连续段(2025年9月C++四级)
Memory Limit:512 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:1
Solved:1
Description
对于k个整数构成的数组{b1,b2,......bk} ,如果对1<=i<k都有bi+1=bi+1,那么称数组b是一个连续段。
给定由n个整数构成的数组{a1,a2,......an} ,你可以任意重排数组a中元素顺序。请问在重排顺序之后,a所有是连续段的子数组中,最长的子数组长度是多少?
例如,对于数组[1,0,2,4],可以将其重排为[4,0,1,2],有以下10个子数组:
[4],[0],[1],[2],[4,0],[0,1],[1,2],[4,0,1],[0,1,2],[4,0,1,2]
其中除[4,0],[4,0,1],[4,0,1,2]以外的子数组均是连续段,因此是连续段的子数组中,最长子数组长度为3。
Input
第一行,一个正整数n,表示数组长度。
第二行, n个整数 a1,a2,a3,.......,an,表示数组中的整数。
Output
一行,一个整数,表示数组a重排顺序后,所有是连续段的子数组的最长长度。
Sample Input Copy
4
1 0 2 4
Sample Output Copy
3
HINT
对于 40% 的测试点,保证 1<=n<=8。
对于所有测试点,保证 1<=n<=10^5,-10^9<=ai<=10^9。