1. 程式人生 > 其它 >Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort

Codeforces Round #771 (Div. 2), problem: (B) Odd Swap Sort

Problem - B - Codeforces

就是給你個序列,給他整成升序的,每次操作可以使相鄰兩個數交換位置,交換條件是二數之和為奇數

結果只需輸出是否可以整成升序的

思路: 需要奇數偶數分開討論, 如果奇數和偶數都分別是單增的那麼可行, 反之為no

#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
typedef pair<int,int> PII;
const int N = 1e5+10;
int a[N];
int main()
{
    int t;
    cin 
>> t; while(t --) { bool f = 0; int n; cin >> n; for(int i=0; i < n; i ++)cin >> a[i]; int odd=0, even=0; for(int i = 0; i <n; i ++) { if(a[i]%2) { if(odd>a[i]) { f
=1; break; } odd=a[i]; } else { if(even>a[i]) { f=1; break; } even=a[i]; } }
if(f)cout << "NO\n"; else cout << "YES\n"; } return 0; }