#include<bits/stdc++.h>
using namespace std;
int a[300300];
int b[300300];
int ans[300300];
int ans2[300300];
stack<pair<int, int> > st;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        for(int i = 0; i < n; i++){
            cin >> a[i];
            while(!st.empty() && a[i] <= st.top().first){
                st.pop();
            }
            if(!st.empty()) b[i] += i-st.top().second-1;
            else            b[i] += i;
            st.push({a[i], i});
        }
        while(!st.empty()){
            st.pop();
        }
        for(int i = n-1; i >= 0; i--){
            while(!st.empty() && a[i] <= st.top().first){
                st.pop();
            }
            if(!st.empty()) b[i] += st.top().second-i-1;
            else            b[i] += n-i-1;
            st.push({a[i], i});
        }
        while(!st.empty()){
            st.pop();
        }
        for(int i = 1; i <= n; i++){
            ans[i] = -1;
        }
        for(int i = 0; i < n; i++){
            ans2[i] = 1;
            ans[a[i]] = max(ans[a[i]], b[i]);
        }
        // for(int i = 1; i <= n; i++){
        //     cout << ans[i] << ' ';
        // }
        // cout << endl;
        for(int i = 1; i <= n; i++){
            int x = ans[i];
            x++;
            while(ans2[x] == 1 && x < n-i+1){
                ans2[x] = 0;
                x++;
            }
        }
        for(int i = 0; i < n; i++){
            cout << ans2[i];
        }
        cout << endl;
        memset(b, 0, sizeof b);
    }
    return 0;
}