#CF2230C. C. Arrange the Numbers in a Circle
C. Arrange the Numbers in a Circle
C. 将数字排成圆圈 / Arrange the Numbers in a Circle
题目描述
你有若干张卡片: 张数字 的卡片, 张数字 的卡片,……, 张数字 的卡片。
你必须从中选出 至少三张 卡片,排成一个圆圈,使得满足以下条件:
- 每连续三张卡片中,至少有两张 数字相同。
设圆圈中卡片的数字依次为 ,则条件为:
- 对于每个 从 到 , 中至少有两个相等。
问最多能排出多少张卡片?
输入格式
第一行包含一个整数 () — 测试用例数量。
每个测试用例包含两行:
- 第一行包含一个整数 ();
- 第二行包含 个整数 ()。
额外限制:所有测试用例中 之和不超过 。
输出格式
对于每个测试用例,输出一个整数 — 能排出的最大卡片数。如果无法选出至少三张卡片排成合法圆圈,输出 。
样例
3
4
1 1 1 3
3
2 3 4
3
1 1 2
4
9
3
提示
第一个例子中,可以选出并排列卡片为 。无法排出超过 张。例如 不合法,因为圆圈中倒数第二、最后和第一张构成的三元组也不满足条件。
第二个例子中,可以排出全部卡片:。
第三个例子中,可以选出并排列卡片为 。