CFCF2163A.Souvlaki VS. Kalamaki
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有两位玩家,Souvlaki 和 Kalamaki,得到了一个长度为 n 的整数序列 a。
他们将玩一个包含 n−1 轮的游戏,轮次编号从 1 到 n−1。Souvlaki 在奇数轮出手,Kalamaki 在偶数轮出手。
在第 i 轮,当前玩家可以选择以下两种操作之一:
- 跳过本回合,进入第 i+1 轮(如果本轮已经是最后一轮,则游戏结束)。
- 交换 ai 和 ai+1 两个元素。
如果在最后一轮结束后,序列 a 是非递减的(即对于每个 1≤i<n,都有 ai≤ai+1),则 Souvlaki 获胜。否则,Kalamaki 获胜。
然而,Souvlaki 不喜欢输,所以在游戏开始之前,他可以任意重新排列 a 中的元素。请判断他是否可以重新排列 a,使得无论 Kalamaki 如何操作,他都一定能获胜。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 t(1≤t≤100),表示测试数据组数。
每组测试数据的第一行为一个整数 n(3≤n≤100),表示 a 的长度。
第二行为 n 个整数 a1,a2,…,an(1≤ai≤n),表示序列 a 的每个元素。
输出格式
对于每组测试数据,若 Souvlaki 能通过重新排列 a 来保证自己获胜,输出 “YES”,否则输出 “NO”。
输出不区分大小写,例如 “yEs”、“yes”、“Yes” 和 “YES” 均视为正确答案。
输入输出样例
输入#1
5 4 4 2 2 1 4 1 1 1 1 5 1 5 1 5 1 3 1 2 3 5 1 3 2 3 5
输出#1
YES YES YES NO NO
说明/提示
在第一个样例中,a=[4,2,2,1]。可以将序列重新排列为 a=[2,1,2,4],此时 Souvlaki 可以这样获胜:
- 第 1 轮,Souvlaki 行动。他选择交换 a1 和 a2,此时 a=[1,2,2,4]。
- 第 2 轮,Kalamaki 行动。无论他选择跳过还是交换 a2 和 a3,a 都不会变。假设他选择跳过。
- 第 3 轮,Souvlaki 行动。他亦可选择跳过,因为如果此时交换最后两个元素会导致失败。
每一轮后,a=[1,2,2,4],始终是非递减的,所以 Souvlaki 获胜,无论 Kalamaki 如何选择。
在第二个样例中,因为所有元素都相等,序列始终是非递减的,所以 Souvlaki 一定获胜。