[AGC028E] High Elements

题意翻译

题目描述:你有一个$1,2,\dots,n$ 的排列 $P$。设一个长度为 $n$ 的 $01$ 字符串 $S$ 合法,当且仅当,先设两个空序列 $A,B$,我们按照 $1$ 到 $n$ 的顺序,若 $S$ 当前位为 $1$ 则把当前位的 $P$ 添加到序列 $A$ 的末尾,否则添加到序列 $B$ 的末尾,使得 $A,B$ 的前缀最大值个数相等。求字典序最小的合法字符串 $S$。 数据范围:$n\le 2\times 10^5,P$ 是 $1,2,\dots,n$ 的排列。

题目描述

[problemUrl]: https://atcoder.jp/contests/agc028/tasks/agc028_e $ (1,\ 2,\ ...\ N) $ の順列 $ P $ が与えられます。 `0`, `1` からなる長さ $ N $ の文字列 $ S $ が**よい文字列**であるかどうかは、以下の様に判定されます。 - 数列 $ X $, $ Y $ を次のように構築する。 - まず、$ X $, $ Y $ を空の数列とする。 - 各 $ i=1,\ 2,\ ...\ N $ について、この順に、$ S_i= $ `0` なら $ X $ の末尾に、$ S_i= $ `1` なら $ Y $ の末尾に $ P_i $ を追加する。 - $ X $ の中にある**高い**項の個数と $ Y $ の中にある**高い**項の個数が等しいならば、$ S $ はよい文字列である。 ここで、ある数列の $ i $ 番目の項が**高い**とは、その項が数列の $ 1 $ 番目から $ i $ 番目の項の中で最大であることを意味する。 よい文字列が存在するか判定し、存在するならその中で辞書順最小のものを求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ P_1 $ $ P_2 $ $ ... $ $ P_N $

输出格式


よい文字列が存在しないならば `-1` と出力せよ。 存在するならば、その中で辞書順最小のものを出力せよ。

输入输出样例

输入样例 #1

6
3 1 4 6 2 5

输出样例 #1

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

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ 1\ \leq\ P_i\ \leq\ N $ - $ P_1,\ P_2,\ ...\ P_N $ はすべて異なる。 - 入力はすべて整数である。 ### Sample Explanation 1 $ S= $ `001001` とすると、$ X=(3,\ 1,\ 6,\ 2) $, $ Y=(4,\ 5) $ となります。 $ X $ の中で高い項は、$ 1 $ 項目と $ 3 $ 項目です。 また、$ Y $ の中で高い項は、$ 1 $ 項目と $ 2 $ 項目です。 高い項の数が等しいので、`001001` はよい文字列です。 これより辞書順で小さいよい文字列は存在しないので、`001001` が答えになります。