#AGC028E. [AGC028E] High Elements
[AGC028E] High Elements
题目描述
の順列 が与えられます。
0
, 1
からなる長さ の文字列 がよい文字列であるかどうかは、以下の様に判定されます。
- 数列 , を次のように構築する。
- まず、, を空の数列とする。
- 各 について、この順に、
0
なら の末尾に、1
なら の末尾に を追加する。
- の中にある高い項の個数と の中にある高い項の個数が等しいならば、 はよい文字列である。 ここで、ある数列の 番目の項が高いとは、その項が数列の 番目から 番目の項の中で最大であることを意味する。
よい文字列が存在するか判定し、存在するならその中で辞書順最小のものを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
よい文字列が存在しないならば -1
と出力せよ。 存在するならば、その中で辞書順最小のものを出力せよ。
题目大意
题目描述:你有一个 的排列 。设一个长度为 的 字符串 合法,当且仅当,先设两个空序列 ,我们按照 到 的顺序,若 当前位为 则把当前位的 添加到序列 的末尾,否则添加到序列 的末尾,使得 的前缀最大值个数相等。求字典序最小的合法字符串 。
数据范围: 是 的排列。
6
3 1 4 6 2 5
001001
5
1 2 3 4 5
-1
7
1 3 2 5 6 4 7
0001101
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
000000000001100101010010011101
提示
制約
- はすべて異なる。
- 入力はすべて整数である。
Sample Explanation 1
001001
とすると、, となります。 の中で高い項は、 項目と 項目です。 また、 の中で高い項は、 項目と 項目です。 高い項の数が等しいので、001001
はよい文字列です。 これより辞書順で小さいよい文字列は存在しないので、001001
が答えになります。