#SummerP8009. 旺购超市
旺购超市
题目描述
在超市中,相同类型的商品通常会被放在一起,这样可以让货架看起来整齐,也方便顾客找到所需的商品。
用一个长度为 的数组 描述货架,其中 表示第 个位置的商品类型。
如果对于所有满足 且 的位置,下面的条件成立,则称货架排列是正确的:对于从 到 之间的每个 ,都有 。换句话说,每种类型的商品在货架上都必须形成一个连续的块。
你可以至多选择两个不同的位置并交换这两处商品,也可以选择不交换。
请判断是否可能通过至多一次交换操作后,使得货架排列正确。
输入描述
第一行为测试用例数 ()。
每个测试用例第一行包含一个整数 (),表示货架商品的数量。
第二行包含 个整数 (),表示第 个位置上的商品类型。
保证所有测试用例中 的总和不超过 。
输出描述
对于每个测试用例,输出一行:如果可能通过至多一次交换使货架排列正确,输出 YES,否则输出 NO。
样例
3
3
1 2 1
2
7 7
6
1 2 3 1 2 3
YES
YES
NO
注释
对于第一组测试用例,可以交换第 个和第 个商品,此时货架变为 ,满足要求。