I Wanna Make It Palindromic
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}给定一个仅由绝对值不超过 200 的整数构成的序列 s_1,s_2,\dots,s_n。你需要先选定两个整数 p_1,p_2(可相等,选定后在本组内不可修改),随后可以执行任意多次(可为 0 次)如下操作:选择一个位置 i,将 s_i 改为 p_1p_2,消耗 1 枚金币。
\hspace{15pt}求最少的消耗金币数,使得序列为回文序列

【名词解释】
\hspace{15pt}回文序列:一个序列被称作回文序列,当且仅当这个序列从左往右读和从右往左读是相同的。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 100\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}第一行输入一个整数 n\left(1\leq n\leq 2 \times 10^5\right),表示序列的长度;
\hspace{15pt}第二行输入 n 个整数 s_1,s_2,\dots,s_n\left(-200\leq s_i\leq 200\right),表示序列中的元素。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出一个整数,表示最少的消耗金币数。
示例1

输入

复制
3
5
1 2 3 2 1
6
-1 1 1 1 1 1
7
7 3 4 0 5 6 1

输出

复制
0
1
4
示例2

输入

复制
5
8
-14 15 23 3 15 4 5 18
10
-3 15 4 5 6 15 18 3 5 19
11
-7 -150 -9 -6 -9 -7 -9 149 -1 149 -7
12
1 4 3 4 4 7 8 200 1 5 1 4
26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

输出

复制
5
7
3
7
24

备注:

\hspace{15pt}在几乎全部的情况下,PyPy 的运行速度优于 Python,我们建议您选择对应版本的 PyPy 进行提交、而不是 Python。