#include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) void solve(){ int n; cin>>n; vector a(n); rep(i,n) cin>>a.at(i); int flg=0; rep(i,n-1){ if(a.at(i)==a.at(i+1)){ if(a.at(i)!=1) flg=1; } } if(a.at(0)==a.at(n-1)) if(a.at(0)!=1) flg=1; int c0=0,c2=0; rep(i,n){ if(a.at(i)==0) c0++; if(a.at(i)==2) c2++; } if(c0*c2==0) flg=1; int sm=0; rep(i,n) sm+=a.at(i); if(sm!=n) flg=1; vector ls(n,-1); rep(i,n){ if(a.at(i)==2) ls.at(i)=1; if(a.at(i)==0) ls.at(i)=0; if(i q; rep(i,n-1){ if(ls.at(i)!=-1&&ls.at(i+1)==-1) q.push(i+1); } if(ls.at(n-1)!=-1&&ls.at(0)==-1) q.push(0); while(!q.empty()){ int p=q.front(); q.pop(); int bf=(p+n-1)%n; if(ls.at(p)!=-1){ int sm=0; sm+=ls.at(p); sm+=ls.at(bf)^1; if(sm!=a.at(p)){ flg=1; break; } continue; } ls.at(p)=a.at(p)-ls.at(bf)^1; if(ls.at(p)==2){ flg=1; break; } q.push((p+1)%n); } if(flg) cout<<"No\n"; else cout<<"Yes\n"; } int main(){ int t; cin>>t; rep(i,t) solve(); }