CF2230C Arrange the Numbers in a Circle
题目描述
你有若干张数字卡片:数字 $1$ 有 $c_1$ 张,数字 $2$ 有 $c_2$ 张,……,数字 $n$ 有 $c_n$ 张。
你必须从手中至少取出三张卡片,并将它们排成一个圆圈,使得以下条件成立:
- 在任意连续的三张卡片中,至少有两张卡片上的数字相等。
形式化地说,设选出的卡片按圆圈顺序为 $a_0, a_1, \dots, a_{k-1}$,那么必须满足:
- 对于每个 $i$ 从 $0$ 到 $k-1$,在 $a_i, a_{(i+1) \bmod k}, a_{(i+2) \bmod k}$ 这三个数中,至少有两个相等。
问最多可以排列多少张卡片?
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。
每个测试用例包含两行:
- 第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$);
- 第二行包含 $n$ 个整数 $c_1, c_2, \dots, c_n$($1 \le c_1 \le c_2 \le \dots \le c_n \le 10^9$)。
输入的附加限制:所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数——最多可以排列的卡片张数。如果无法选出三张或更多卡片并排成圆圈使得条件成立,则输出 $0$。
说明/提示
在第一个示例中,你可以选择并排列卡片为 $[4, 2, 4, 4]$。你无法排列超过 $4$ 张卡片。例如,排列 $[2, 4, 4, 1, 4]$ 是不行的,因为卡片必须排成圆圈,且条件也适用于倒数第二张、最后一张和第一张卡片组成的连续三张。
在第二个示例中,你可以排列所有卡片:$[1, 1, 2, 2, 2, 3, 3, 3, 3]$。
在第三个示例中,你可以选择并排列卡片为 $[5, 5, 6, 6, 3, 6, 6, 5]$。
由 DeepSeek-V4 翻译