时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
n颗任意颜色的珠子摆成一排,现在你知道每个珠子的颜色种类以及珠子的总数目。
现在你有一颗颜色为x的珠子。你可以将这颗珠子插在这一排珠子中的任意位置,
一旦存在连续的相同颜色的珠子数目大于等于三颗,那么这些连续的珠子将被消除。
同时两边的珠子向中间靠拢,将被消除的部分填满,这个过程不改变珠子的相对顺序。
保证初始状态不存在连续的同颜色珠子的数目大于等于三颗。
问:由你决定x的插入位置,问最多可以消除的珠子的数目是多少。(插入的珠子不计算在内)
输入描述:
第一行输入一个整数t, 代表测试数目。(1<=t<=20)
第二行输入三个正整数n (n <= 100) 、k(k <= 100)以及x (x <= k)。 分别代表珠子的总数目、珠子的颜色数
以及初始时所拥有的珠子的颜色。
第三行输入n个正整数C1,C2......Cn(Ci <= k )。
输出描述:
每行输出一个整数代表最大能消除的珠子的数量
示例1
输入
复制
1
10 2 1
2 1 2 2 1 2 2 1 1 2
说明
显然将颜色为1的珠子插在第8颗珠子的前面,珠子顺序变成2 1 2 2 1 2 2 2,消除3颗珠子
又形成3个连续的颜色为2的珠子, 珠子顺序变成2 1 2 2 1, 消除3颗珠子
不存在连续的同颜色的珠子数目大于等于3, 结束。 答案为3 + 3 - 1 = 5(减去插入的珠子)