5391 - 最长连续段

题目描述

对于 k个 整数构成的数组 [b_1,b_2,...,b_k],如果对 1 \le i \le k 都有 b_{i+1}=b_i+1 ,那么称数组 b 是一个连续段。

给定由 n 个整数构成的数组 [a_1,a_2,...,a_n],你可以任意重排数组 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

输入

第一行,一个正整数 n,表示数组长度。

第二行, n个整数 a_1,a_2,...a_n,表示数组中的整数。

输出

一行,一个整数,表示数组 a 重排顺序后,所有是连续段的子数组的最长长度。

样例

输入

4
1 0 2 4

输出

3

输入

9
9 9 8 2 4 4 3 5 3

输出

4
说明

数据范围

对于 40 % 的测试点,保证 1 \le n \le 8

对于所有测试点,保证 1 \le n \le 10^5,-10^9 \le a_i \le 10^9

来源

GESP 2025年09月认证 C++4级真题

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 4
通过人数 3
金币数量 1 枚
难度 入门


上一题 下一题