#include<bits/stdc++.h>
using namespace std;
int t, n, a[1000005], minn[1000005], maxn[1000005], minn1[1000005], maxn1[1000005], ans[1000005], p[1000005], minnn[1000005], maxnn[1000005], minnn1[1000005], maxnn1[1000005], stmax[1000005], stmin[1000005], stmax1[1000005], stmin1[1000005];
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> t;
while (t --) {
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
p[i] = 0;
}
minn[0] = minn1[n + 1] = n + 1;
maxn[0] = maxn1[n + 1] = 0;
minnn[0] = minnn1[n + 1] = n + 1;
maxnn[0] = maxnn1[n + 1] = 0;
for (int i = 1; i <= n; i ++) {
minn[i] = minn[i - 1];
minnn[i] = minnn[i - 1];
if (a[i] < minn[i]) {
minnn[i] = minn[i];
minn[i] = a[i];
} else if (a[i] < minnn[i]) {
minnn[i] = a[i];
}
maxn[i] = maxn[i - 1];
maxnn[i] = maxnn[i - 1];
if (a[i] > maxn[i]) {
maxnn[i] = maxn[i];
maxn[i] = a[i];
} else if (a[i] > maxnn[i]) {
maxnn[i] = a[i];
}
}
for (int i = n; i >= 1; i --) {
minn1[i] = minn1[i + 1];
minnn1[i] = minnn1[i + 1];
if (a[i] < minn1[i]) {
minnn1[i] = minn1[i];
minn1[i] = a[i];
} else if (a[i] < minnn1[i]) {
minnn1[i] = a[i];
}
maxn1[i] = maxn1[i + 1];
maxnn1[i] = maxnn1[i + 1];
if (a[i] > maxn1[i]) {
maxnn1[i] = maxn1[i];
maxn1[i] = a[i];
} else if (a[i] > maxnn1[i]) {
maxnn1[i] = a[i];
}
}
for (int i = 1; i <= n; i ++) {
stmin[i] = i - 1;
while (stmin[i] && a[stmin[i]] > a[i]) {
stmin[i] = stmin[stmin[i]];
}
stmax[i] = i - 1;
while (stmax[i] && a[stmax[i]] < a[i]) {
stmax[i] = stmax[stmax[i]];
}
}
for (int i = n; i >= 1; i --) {
stmin1[i] = i + 1;
while (stmin1[i] && a[stmin1[i]] > a[i]) {
stmin1[i] = stmin1[stmin1[i]];
}
stmax1[i] = i + 1;
while (stmax1[i] && a[stmax1[i]] < a[i]) {
stmax1[i] = stmax1[stmax1[i]];
}
}
for (int i = 1; i <= n; i ++) {
if (i % 2) {
if (i == 1) {
int rmin = stmin1[i], rmax = stmax1[i];
if (rmin % 2) {
rmin ++;
}
if (rmax % 2) {
rmax ++;
}
p[i] |= (rmin <= n && minn1[rmin + 1] < a[i]);
p[i] |= (rmax <= n && maxn1[rmax + 1] > a[i]);
} else if (i == n) {
int lmin = stmin[i], lmax = stmax[i];
if (lmin % 2) {
lmin --;
}
if (lmax % 2) {
lmax --;
}
p[i] |= (lmin != 0 && minn[lmin - 1] < a[i]);
p[i] |= (lmax != 0 && maxn[lmax - 1] > a[i]);
} else {
int lmin = stmin[i], lmax = stmax[i], rmin = stmin1[i], rmax = stmax1[i];
if (lmin % 2) {
lmin --;
}
if (lmax % 2) {
lmax --;
}
if (rmin % 2) {
rmin ++;
}
if (rmax % 2) {
rmax ++;
}
p[i] |= (rmin <= n && minn1[rmin + 1] < a[i]) && (lmin != 0 && minn[lmin - 1] < a[i]);
p[i] |= (rmax <= n && maxn1[rmax + 1] > a[i]) && (lmax != 0 && maxn[lmax - 1] > a[i]);
p[i] |= (rmax <= n && maxn1[rmax + 1] > a[i]) && (lmin != 0 && minn[lmin - 1] < a[i]);
p[i] |= (rmin <= n && minn1[rmin + 1] < a[i]) && (lmax != 0 && maxn[lmax - 1] > a[i]);
p[i] |= (lmin != 0 && maxn[lmin - 1] > a[i] && rmin <= n && maxn1[rmin + 1] > a[i]);
p[i] |= (lmax != 0 && minn[lmax - 1] < a[i] && rmax <= n && minn1[rmax + 1] < a[i]);
}
} else {
p[i] |= (minn[i - 1] < a[i] && minn1[i + 1] < a[i]);
p[i] |= (maxn[i - 1] > a[i] && maxn1[i + 1] > a[i]);
}
ans[a[i]] = p[i];
}
for (int i = 1; i <= n; i ++) {
cout << ans[i];
}
cout << "\n";
}
return 0;
}