#include<bits/stdc++.h>
using namespace std;
const int N=3e5+5;
int n,t,k,x,fix[N],l[N],r[N],a[N],f[N];
vector<int>er[N];
set<int>s;
multiset<int>sc;
int main(){
	cin>>t;
	while(t--){
		cin>>n;
		s.clear();
		sc.clear();
		for(k=1;k<=n;k++){
			er[k].clear();
			cin>>a[k]; f[a[k]]=0;fix[a[k]]=0;
			x=k-1;
			while(a[x]>=a[k]){
				x=l[x];
			}
			l[k]=x;
		}
		for(k=n;k>=1;k--){
				x=k+1; fix[a[k]]++; 
			
			s.insert(a[k]);
			while(a[x]>a[k] && x<=n){
				x=r[x];
			}
			r[k]=x;
		}
		for(k=1;k<=n;k++){ 
		if(!f[a[k]])sc.insert(fix[a[k]]);
			f[a[k]]=1;
			er[r[k]-l[k]].push_back(a[k]);
		}
		for(k=1;k<=n;k++){
			for(int i=0;i<er[k].size();i++){
				sc.erase(sc.find(fix[er[k][i]]));
				fix[er[k][i]]--;
			    if(fix[er[k][i]])sc.insert(fix[er[k][i]]);
			    else s.erase(er[k][i]);
			}
		//	cout<<s.size()<<" "<<*(--s.end())<<" "<<*(--sc.end())<<" "<<sc.size()<<endl;
			if(sc.size()==n-k+1 && *(--s.end())==n-k+1 && *(--sc.end())==1) cout<<1;
			else cout<<0;
		}
		cout<<endl;
	}
}