#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e5+7;
multiset<ll> st;
ll n, arr[N];
bool valid(ll mn, ll mx) {
auto it = st.lower_bound(mn+1);
if (it != st.end() and *it < mx) return false;
return true;
}
void Delete(ll tmp) {
auto it = st.find(tmp);
st.erase(it);
}
bool check(ll i, ll j) {
ll mn, mx;
if (i > 1) mn = mx = arr[1];
else mn = mx = arr[n];
while (i < j) {
Delete(arr[i]);
if (valid(min(mn, arr[i]), max(mx, arr[i]))) {
mn = min (mn, arr[i]);
mx = max (mx, arr[i]);
i++;
continue;
}
st.insert(arr[i]);
Delete(arr[j]);
if (valid(min(mn, arr[j]), max(mx, arr[j]))) {
mn = min(mn, arr[j]);
mx = max(mx, arr[j]);
j--;
}
else return false;
}
return true;
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0);
ll tc; cin >> tc;
test:
while (tc--) {
cin >> n;
for (ll i = 1; i <= n; i++) cin >> arr[i];
st.clear();
for (ll i = 2; i <= n; i++) st.insert(arr[i]);
if (check(2, n)) {
cout << "YES\n";
goto test;
}
st.clear();
for (ll i = 1; i < n; i++) st.insert(arr[i]);
if (check(1, n-1)) {
cout << "YES\n";
goto test;
}
cout << "NO\n";
}
}