CF1638B Odd Swap Sort
题目描述
#### 题目大意
给定一个数列 $a_1,a_2,...,a_n$ 。
你可以执行若干次如下的操作:
- 选择一个整数 $i\ (\ 1\leq i< n\ )$ ,如果 $a_i+a_{i+1}$ 为奇数,交换 $a_i$ 和 $a_{i+1}$ 。
问是否可以将该数列排序成单调不降数列。
输入格式
第一行一个整数 $t\ (\ 1\leq t\leq 10^5\ )$ ,表示测试组数。
每组第一行一个整数 $n\ (\ 1\leq n\leq 10^5)$ ,表示数列的长度。
每组第二行 $n$ 个整数 $a_1,a_2,...,a_n\ (\ 1\leq a_i\leq 10^9\ )$ ,表示给定的数列。
可以保证 $t$ 组测试的 $n$ 的和不超过 $2·10^5$ 。
输出格式
共 $t$ 行。
对于每组测试,如果你可以将该数列排序成单调不降数列,输出 ``Yes`` ;否则,输出 ``No`` 。
#### 样例解释
- 第一组测试,可以交换 $31$ 和 $14$ ( $31+14=45$ 是奇数)然后得到单调不降数列 $[1,6,14,31]$ 。
- 第二组测试,我们想要得到单调不降数列就一定要交换 $4$ 和 $2$ ,但这是不可能的,因为 $4+2=6$ 是偶数。
- 第三组测试,没有方法可以使其排序成单调不降数列。
- 第四组测试,该数列已经是单调不降数列了。
说明/提示
In the first test case, we can simply swap $ 31 $ and $ 14 $ ( $ 31 + 14 = 45 $ which is odd) and obtain the non-decreasing array $ [1,6,14,31] $ .
In the second test case, the only way we could sort the array is by swapping $ 4 $ and $ 2 $ , but this is impossible, since their sum $ 4 + 2 = 6 $ is even.
In the third test case, there is no way to make the array non-decreasing.
In the fourth test case, the array is already non-decreasing.