题目链接:B - Odd Swap Sort
题目描述:
样例:
样例解析:
题意:给定一个数组,相邻两位的和为奇数就可以进行交换,操作若干次以后,能否使数组变为是非递减数列
思路:通过样例发现规律,前面有奇数大于当前奇数,就不能递增,偶数同理
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
typedef long long ll;
const ll mod=1e9+7;
ll t,n;
ll a[N];
int main(){
ios::sync_with_stdio(false);
cin>>t;
while(t--){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
ll maxj=0,maxo=0;
int f=0;
for(int i=0;i<n;i++){
if(a[i]%2==1){
if(a[i]<maxj){
f=1;
break;
}else{
maxj=a[i];
}
}else{
if(a[i]<maxo){
f=1;
break;
}else{
maxo=a[i];
}
}
}
if(f==0){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
}
return 0;
}