CF1851B.Parity Sort
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的整数数组 a。你可以对该数组进行如下操作:
- 交换两个元素 ai 和 aj,其中 i=j,且 ai 和 aj 要么都是偶数,要么都是奇数。
请判断是否可以通过若干次(可以为零次)上述操作,将数组按非递减顺序排序。
例如,设 a=[7,10,1,3,2]。我们可以进行 3 次操作将数组排序:
- 交换 a3=1 和 a1=7,因为 1 和 7 都是奇数。得到 a=[1,10,7,3,2];
- 交换 a2=10 和 a5=2,因为 10 和 2 都是偶数。得到 a=[1,2,7,3,10];
- 交换 a4=3 和 a3=7,因为 3 和 7 都是奇数。得到 a=[1,2,3,7,10]。
输入格式
输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤2×105),表示数组 a 的长度。
每个测试用例的第二行包含 n 个正整数 a1,a2,…,an(1≤ai≤109),表示数组 a 的元素。
保证所有测试用例中 n 的总和不超过 2×105。
输出格式
对于每个测试用例,输出一行:
- 如果可以通过若干次操作将数组排序,输出 YES;
- 否则输出 NO。
你可以用任意大小写形式输出 YES 和 NO(例如 yEs, yes, Yes 和 YES 都会被识别为肯定回答)。
输入输出样例
输入#1
6 5 7 10 1 3 2 4 11 9 3 5 5 11 3 15 3 2 6 10 7 8 1 2 3 1 10 5 6 6 4 1 6
输出#1
YES YES NO NO YES NO