CF1638B.Odd Swap Sort

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

Odd Swap Sort

题目描述

题目大意

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

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

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

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

输入格式

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

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

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

可以保证 tt 组测试的 nn 的和不超过 2⋅1052·10^5 。

输出格式

共 tt 行。

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

样例解释

  • 第一组测试,可以交换 3131 和 1414 ( 31+14=4531+14=45 是奇数)然后得到单调不降数列 [1,6,14,31][1,6,14,31] 。
  • 第二组测试,我们想要得到单调不降数列就一定要交换 44 和 22 ,但这是不可能的,因为 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

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