最多的相等元素
B. Equalize
https://codeforces.com/problemset/problem/1928/B
Vasya 有两个爱好 —— 给数组加上一个排列 ^{†},以及寻找数组中出现次数最多的元素。最近他发现了一个数组 a,他想知道,在对该数组加上某个排列之后,最多能有多少个元素相等。
更正式地说,Vasya 需要选择一个长度为 n 的排列 \(p_1, p_2, p_3, ..., p_n\),然后对数组 a 执行以下操作:
\( a_i := a_i + p_i \)
之后,他统计数组 a 中每个值的出现次数,并取最大的那个值作为答案。你需要求出这个最大值。
† 一个长度为 n 的排列是一个数组,它包含从 1 到 n 的 n 个不同的整数。例如,[2,3,1,5,4] 是一个排列;但 [1,2,2] 不是(因为数字 2 出现了两次),而 [1,3,4] 也不是(因为 n=3,却出现了 4)。
输入格式 每个测试包含多个测试用例。 第一行为一个整数 t (\(1 \le t \le 2⋅10^4\)) —— 测试用例数量。
每个测试用例包含两行:
第一行一个整数 n (\(1 \le n \le 2⋅10^5\)) —— 数组 a 的长度;
第二行包含 n 个整数 \(a_1, a_2, ..., a_n (1 \le a_i \le 10^9) \)—— 数组的元素。
保证所有测试用例中所有 n 的总和不超过 \(2⋅10^5\)。
输出格式
对于每个测试用例,输出一个整数,表示数组中某个值出现的最大次数(在加上某个排列之后)。
示例输入
7
2
1 2
4
7 1 4 1
3
103 102 104
5
1 101 1 100 1
5
1 10 100 1000 1
2
3 1
3
1000000000 999999997 999999999
示例输出
2
2
3
2
1
1
2
说明 在第一个测试用例中,选择排列 p = [2, 1],那么变换后的数组为 [3, 3],数字 3 出现了两次,答案为 2。
在第二个测试用例中,选择排列 p = [2, 3, 1, 4],变换后数组为 [9, 4, 5, 5],其中 5 出现两次,答案为 2。
Comments