#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; bool is_kadomatsu(int a, int b, int c) { if (a == b) return false; if (a == c) return false; if (b == c) return false; if (a < b && b < c) return false; if (a > b && b > c) return false; return true; } void solver(int N, vector A) { int idx = -1; vector check_list; for (int i = 0; i < N - 3; ++i) { int a = A[i]; int b = A[i + 1]; int c = A[i + 2]; if (is_kadomatsu(a, b, c)) continue; check_list.push_back(i); idx = i; } for (int i = idx; i < min(idx + 2, N); ++i) { for (int j = 0; j < N; ++j) { swap(A[i], A[j]); bool ok = true; for (int cid : check_list) { if (cid <= i && i <= cid + 2) { ok &= is_kadomatsu(A[cid], A[cid + 1], A[cid + 2]); } else if (cid <= j && j <= cid + 2) { ok &= is_kadomatsu(A[cid], A[cid + 1], A[cid + 2]); } else { ok = false; } if (not ok) break; } if (i - 2 >= 0) ok &= is_kadomatsu(A[i - 2], A[i - 1], A[i]); if (i - 1 >= 0 && i + 1 < N) ok &= is_kadomatsu(A[i - 1], A[i], A[i + 1]); if (i + 2 < N) ok &= is_kadomatsu(A[i], A[i + 1], A[i + 2]); if (j - 2 >= 0) ok &= is_kadomatsu(A[j], A[j + 1], A[j + 2]); if (j - 1 >= 0 && j + 1 < N) ok &= is_kadomatsu(A[j - 1], A[j], A[j + 1]); if (j + 2 < N) ok &= is_kadomatsu(A[j], A[j + 1], A[j + 2]); if (ok) { /* for (int v : A) { cerr << v << " "; } cerr << endl; */ cout << "Yes" << endl; return; } swap(A[i], A[j]); } } cout << "No" << endl; } int main() { int T; cin >> T; for (int t = 0; t < T; ++t) { int N; cin >> N; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } solver(N, A); } return 0; }