atcoder#AGC028E. [AGC028E] High Elements
[AGC028E] High Elements
Score : points
Problem Statement
You are given , a permutation of .
A string of length consisting of 0
and 1
is a good string when it meets the following criterion:
- The sequences and are constructed as follows:- First, let and be empty sequences.
- For each , in this order, append to the end of if
0
, and append it to the end of if1
.
- For each , in this order, append to the end of if
- First, let and be empty sequences.
- For each , in this order, append to the end of if
0
, and append it to the end of if1
. - If and have the same number of high elements, is a good string. Here, the -th element of a sequence is called high when that element is the largest among the elements from the -st to -th element in the sequence.
Determine if there exists a good string. If it exists, find the lexicographically smallest such string.
Constraints
- are all distinct.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
If a good string does not exist, print -1
.
If it exists, print the lexicographically smallest such string.
6
3 1 4 6 2 5
001001
Let 001001
. Then, and .
The high elements in is the first and third elements, and the high elements in is the first and second elements.
As they have the same number of high elements, 001001
is a good string.
There is no good string that is lexicographically smaller than this, so the answer is 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