#agc028e. [agc028_e]High Elements
[agc028_e]High Elements
問題文
の順列 が与えられます。
0
, 1
からなる長さ の文字列 がよい文字列であるかどうかは、以下の様に判定されます。
- 数列 , を次のように構築する。
- まず、, を空の数列とする。
- 各 について、この順に、
0
なら の末尾に、1
なら の末尾に を追加する。
- の中にある高い項の個数と の中にある高い項の個数が等しいならば、 はよい文字列である。 ここで、ある数列の 番目の項が高いとは、その項が数列の 番目から 番目の項の中で最大であることを意味する。
よい文字列が存在するか判定し、存在するならその中で辞書順最小のものを求めてください。
制約
- はすべて異なる。
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
よい文字列が存在しないならば -1
と出力せよ。 存在するならば、その中で辞書順最小のものを出力せよ。
入力例 1
6
3 1 4 6 2 5
出力例 1
001001
001001
とすると、, となります。 の中で高い項は、 項目と 項目です。 また、 の中で高い項は、 項目と 項目です。 高い項の数が等しいので、001001
はよい文字列です。 これより辞書順で小さいよい文字列は存在しないので、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