#include using namespace std; typedef long long int ll; typedef pair P; typedef vector VI; typedef vector VVI; #define REP(i,n) for(int i=0;i<(n);i++) #define ALL(v) v.begin(),v.end() constexpr ll MOD=1000000007; constexpr ll INF=1e18; bool kad(int a, int b, int c){ if(a==c) return 0; if(a>b&&bc) return 1; return 0; } int main(){ int t; cin >> t; while(t--){ int n; cin >> n; VI a(n); REP(i,n) cin >> a[i]; set st; REP(i,n-2){ if(!kad(a[i],a[i+1],a[i+2])){ st.insert(i); st.insert(i+1); st.insert(i+2); } } VI nt; for(auto x:st) nt.push_back(x); int m=nt.size(); if(m>15){ cout << "No" << endl; continue; } else if(m>5){ bool no=1; REP(i,m){ REP(j,i){ swap(a[nt[i]],a[nt[j]]); bool ok=1; REP(k,n-2){ if(!kad(a[k],a[k+1],a[k+2])){ ok=0; break; } } if(ok){ cout << "Yes" << endl; no=0; break; } swap(a[nt[i]],a[nt[j]]); } if(!no) break; } if(no) cout << "No" << endl; } else{ bool no=1; for(auto i:nt){ REP(j,n){ swap(a[i],a[j]); bool ok=1; for(auto k:nt){ for(int l=max(0,(int)k-2);l<=min(n-3,(int)k);l++){ if(!kad(a[l],a[l+1],a[l+2])){ ok=0; break; } } if(!ok) break; } for(int l=max(0,j-2);l<=min(n-3,j);l++){ if(!kad(a[l],a[l+1],a[l+2])){ ok=0; break; } } if(ok){ cout << "Yes" << endl; no=0; break; } swap(a[i],a[j]); } if(!no) break; } if(no) cout << "No" << endl; } } return 0; }