原题链接:
http://codeforces.com/contest/1638/problem/B
题意:
给定一个序列,序列中的元素两两可交换,交换的条件是这两个元素相加为奇数,问能否得到不递减序列。
题解:
当两个元素奇偶性相同时无法交换,也就是说后面的数如果比前一个奇偶性相同数小最终就得不到递减序列。
代码:
#include <bits/stdc++.h>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
int main(void) {
int cas,t,tt,b;
while(~scanf("%d",&t)){
for(int cas=0;cas<t;cas++){
scanf("%d",&tt);
int f=1;
int a[]={0,0};
for(int iii=1;iii<=tt;iii++){
scanf("%d",&b);
if(a[b&1]>b) f=0;
a[b&1]=b;
}
if(f) puts("YES");
else puts("NO");
}
}
return 0;
}