CF1638B.Odd Swap Sort

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Odd Swap Sort

题目描述

题目大意

给定一个数列 a1,a2,...,ana_1,a_2,...,a_n

你可以执行若干次如下的操作:

  • 选择一个整数 i ( 1i<n )i\ (\ 1\leq i< n\ ) ,如果 ai+ai+1a_i+a_{i+1} 为奇数,交换 aia_iai+1a_{i+1}

问是否可以将该数列排序成单调不降数列。

输入格式

第一行一个整数 t ( 1t105 )t\ (\ 1\leq t\leq 10^5\ ) ,表示测试组数。

每组第一行一个整数 n ( 1n105)n\ (\ 1\leq n\leq 10^5) ,表示数列的长度。

每组第二行 nn 个整数 a1,a2,...,an ( 1ai109 )a_1,a_2,...,a_n\ (\ 1\leq a_i\leq 10^9\ ) ,表示给定的数列。

可以保证 tt 组测试的 nn 的和不超过 21052·10^5

输出格式

tt 行。

对于每组测试,如果你可以将该数列排序成单调不降数列,输出 Yes ;否则,输出 No

样例解释

  • 第一组测试,可以交换 3131141431+14=4531+14=45 是奇数)然后得到单调不降数列 [1,6,14,31][1,6,14,31]
  • 第二组测试,我们想要得到单调不降数列就一定要交换 4422 ,但这是不可能的,因为 4+2=64+2=6 是偶数。
  • 第三组测试,没有方法可以使其排序成单调不降数列。
  • 第四组测试,该数列已经是单调不降数列了。

样例

4
4
1 6 31 14
2
4 2
5
2 9 6 7 10
3
6 6 6
Yes
No
No
Yes

在线编程 IDE

建议全屏模式获得最佳体验