#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define inf 1000000000000000LL
#define mod 1000000007LL
#define FOR(i,a,b) for(int i = a; i < b; i++)

void solve() {
    ll n;
    cin >> n;
    vector <ll> l1(n);
    vector <ll> maxpos(n+1, -1), minpos(n+1, inf);
    for (ll i = 0; i < n; i++){
        cin >> l1[i];
        maxpos[l1[i]] = max(i, maxpos[l1[i]]);
        minpos[l1[i]] = min(i, minpos[l1[i]]);
    }
    auto l2 = l1;
    sort(l2.begin(), l2.end());
    if (l1.size() == 1 || l2[0] % 2 != l2[n-1] % 2){
        cout << "YES" << "\n";
        return;
    }
    ll min_pos = inf;
    ll max_pos = inf;
    for (int i = 0; i < n; i++){
        if (l2[i] % 2 != l2[0] % 2){
            min_pos = l2[i]; break;
        }
    }
    for (int i = n-1; i>= 0; i--){
        if (l2[i] % 2 != l2[0] % 2){
            max_pos = l2[i]; break; 
        }
    }
    // cout << min_pos << " " << max_pos << "\n";
    if (min_pos == inf){
        if (l1 == l2){
            cout << "YES" << "\n";
        }
        else{
            cout << "NO" << "\n";
        }
        return;
    }
    ll v1 = -1; ll v2 = inf;
    for (int i = 1; i < min_pos; i++){
        v1 = max(v1, maxpos[i]);
    }
    for (int i = n; i > max_pos; i--){
        v2 = min(v2, minpos[i]);
    }
    if (v1 > v2){
        cout << "NO" << "\n";
    }
    else{
        cout << "YES" << "\n";
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll t = 1;
    cin >> t;
    while (t--) {
        solve();
    }

    return 0;
}