#CF2123C. 前缀最小值与后缀最大值

前缀最小值与后缀最大值

C. 前缀最小值与后缀最大值
时间限制:2 秒
内存限制:256 兆字节

给定一个由互不相同的整数组成的数组 aa

在一次操作中,你可以选择以下之一:

  • 选择 aa 的一个非空前缀^*,并将其替换为该前缀的最小值;
  • 选择 aa 的一个非空后缀^\dagger,并将其替换为该后缀的最大值。

注意,你可以选择整个数组 aa

对于每个元素 aia_i,判断是否存在一系列操作,将 aa 变换为 [ai][a_i](即数组只包含一个元素,且该元素为 aia_i)。输出一个长度为 nn 的二进制字符串,其中第 ii 个字符为 11 表示存在这样的操作序列,为 00 表示不存在。

^* 数组的前缀是由数组的前 kk 个元素组成的子数组(kk 为某个整数)。

^\dagger 数组的后缀是由数组的后 kk 个元素组成的子数组(kk 为某个整数)。


输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例数。

每个测试用例的第一行包含一个整数 nn2n21052 \le n \le 2 \cdot 10^5)—— 数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1061 \le a_i \le 10^6)。保证所有 aia_i 互不相同。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,输出一个长度为 nn 的二进制字符串,其中第 ii 个字符为 11 表示可以将 aa 变换为 [ai][a_i],否则为 00


样例
输入

3
6
1 3 5 4 7 2
4
13 10 12 20
7
1 2 3 4 5 6 7

输出

100011
1101
1000001

说明
第一个样例:

  • 先选择长度为 33 的前缀,数组变为 [1,4,7,2][1, 4, 7, 2]
  • 再选择长度为 22 的后缀,数组变为 [1,4,7][1, 4, 7]
  • 最后选择长度为 33 的前缀,数组变为 [1][1]

因此可以将 aa 变换为 [1][1]

可以证明无法将 aa 变换为 [3][3]