atcoder#AGC028E. [AGC028E] High Elements

[AGC028E] High Elements

Score : 14001400 points

Problem Statement

You are given PP, a permutation of (1, 2, ... N)(1,\ 2,\ ...\ N).

A string SS of length NN consisting of 0 and 1 is a good string when it meets the following criterion:

  • The sequences XX and YY are constructed as follows:- First, let XX and YY be empty sequences.
    • For each i=1, 2, ... Ni=1,\ 2,\ ...\ N, in this order, append PiP_i to the end of XX if Si=S_i= 0, and append it to the end of YY if Si=S_i= 1.
  • First, let XX and YY be empty sequences.
  • For each i=1, 2, ... Ni=1,\ 2,\ ...\ N, in this order, append PiP_i to the end of XX if Si=S_i= 0, and append it to the end of YY if Si=S_i= 1.
  • If XX and YY have the same number of high elements, SS is a good string. Here, the ii-th element of a sequence is called high when that element is the largest among the elements from the 11-st to ii-th element in the sequence.

Determine if there exists a good string. If it exists, find the lexicographically smallest such string.

Constraints

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1PiN1 \leq P_i \leq N
  • P1, P2, ... PNP_1,\ P_2,\ ...\ P_N are all distinct.
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN

P1P_1 P2P_2 ...... PNP_N

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 S=S= 001001. Then, X=(3, 1, 6, 2)X=(3,\ 1,\ 6,\ 2) and Y=(4, 5)Y=(4,\ 5). The high elements in XX is the first and third elements, and the high elements in YY 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