#agc028e. [agc028_e]High Elements

[agc028_e]High Elements

题目描述

给定一个排列 PP,其中包含了 (1,2,...,N)(1, 2, ..., N) 的所有数字。

一个长度为 NN,由 01 组成的字符串 SS 满足以下条件时,称为 good string

  • 构造序列 XXYY 的方法如下:
    • 首先,将 XXYY 初始化为空序列。
    • 对于每个 i=1,2,...,Ni = 1, 2, ..., N,按顺序判断 SiS_i 的值,如果是 0,则将 PiP_i 添加到 XX 的末尾;如果是 1,则将 PiP_i 添加到 YY 的末尾。
  • 如果 XXYY 中具有相同数量的 high 元素,则称字符串 SS 是 good string。这里,一个序列中的第 ii 个元素被称为 high 元素,当且仅当它是该序列从第 11 个元素到第 ii 个元素的最大元素。

确定是否存在 good string。如果存在,则找出字典序最小的字符串。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1PiN1 \leq P_i \leq N
  • P1,P2,...,PNP_1, P_2, ..., P_N 中的数字各不相同。
  • 输入数据中的所有值均为整数。

输入

从标准输入读入输入数据,输入格式如下:

NN P1P_1 P2P_2 ...... PNP_N

输出

如果不存在 good string,则输出 -1。如果存在,则输出字典序最小的 good string。


示例输入1

6
3 1 4 6 2 5

示例输出1

001001

S=001001S = 001001。则,X=(3,1,6,2)X = (3, 1, 6, 2)Y=(4,5)Y = (4, 5)XX 中的 high 元素是第一个和第三个元素,YY 中的 high 元素是第一个和第二个元素。由于它们具有相同数量的 high 元素,所以 001001 是 good string。在这之前没有比它字典序更小的 good string,因此答案是 001001


示例输入2

5
1 2 3 4 5

示例输出2

-1

示例输入3

7
1 3 2 5 6 4 7

示例输出3

0001101

示例输入4

30
1 2 6 3 5 7 9 8 11 12 10 13 16 23 15 18 14 24 22 26 19 21 28 17 4 27 29 25 20 30

示例输出4

000000000001100101010010011101