AC#1~5,其余WA
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define pl (p<<1)
#define pr (p<<1|1)
const int N=5e5+10,base=233,mod=998244353;
int T,n,now,a[N];ll ans1,ans2,Pow[N],tr1[N<<2],tr2[N<<2];
void update(int l,int r,int k,int p){
if(l==r)return tr1[p]=tr2[p]=1,void();
int mid=l+r>>1;
if(k<=mid)update(l,mid,k,pl);
else update(mid+1,r,k,pr);
tr1[p]=(tr1[pl]*Pow[r-mid]%mod+tr1[pr])%mod,tr2[p]=(tr2[pl]+tr2[pr]*Pow[mid-l+1]%mod)%mod;
}void query1(int l,int r,int le,int ri,int p){
if(l>=le&&r<=ri)return ans1=(ans1+tr1[p]*Pow[now]%mod)%mod,now+=r-l+1,void();
int mid=l+r>>1;
if(ri>mid)query1(mid+1,r,le,ri,pr);
if(le<=mid)query1(l,mid,le,ri,pl);
}void query2(int l,int r,int le,int ri,int p){
if(l>=le&&r<=ri)return ans2=(ans2+tr2[p]*Pow[now]%mod)%mod,now+=r-l+1,void();
int mid=l+r>>1;
if(le<=mid)query2(l,mid,le,ri,pl);
if(ri>mid)query2(mid+1,r,le,ri,pr);
}void solve(){
for(int i=1,len;i<=n;i++){
update(1,n,a[i],1),len=min(a[i],n-a[i]+1),ans1=ans2=now=0,query1(1,n,a[i]-len+1,a[i]+len-1,1),now=0,query2(1,n,a[i]-len+1,a[i]+len-1,1);
if(ans1!=ans2)return puts("Y"),void();
}puts("N");
}main(){
cin>>T,Pow[0]=1;
for(int i=1;i<=n;i++)Pow[i]=Pow[i-1]*base%mod;
while(T--){
cin>>n,memset(tr1,0,sizeof tr1),memset(tr2,0,sizeof tr2);
for(int i=1;i<=n;i++)cin>>a[i];
solve();
}return 0;
}