High Elements

AtCoder
IDagc028_e
Time2000ms
Memory256MB
Difficulty
You are given $P$, a permutation of $(1,\ 2,\ ...\ N)$. A string $S$ of length $N$ consisting of `0` and `1` is a _good string_ when it meets the following criterion: * The sequences $X$ and $Y$ are constructed as follows: * First, let $X$ and $Y$ be empty sequences. * For each $i=1,\ 2,\ ...\ N$, in this order, append $P_i$ to the end of $X$ if $S_i=$ `0`, and append it to the end of $Y$ if $S_i=$ `1`. * If $X$ and $Y$ have the same number of _high_ elements, $S$ is a good string. Here, the $i$\-th element of a sequence is called _high_ when that element is the largest among the elements from the $1$\-st to $i$\-th element in the sequence. Determine if there exists a good string. If it exists, find the lexicographically smallest such string. ## Constraints * $1 \leq N \leq 2 \times 10^5$ * $1 \leq P_i \leq N$ * $P_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: $N$ $P_1$ $P_2$ $...$ $P_N$ [samples]
Samples
Input #1
6
3 1 4 6 2 5
Output #1
001001

Let $S=$ `001001`. Then, $X=(3,\ 1,\ 6,\ 2)$ and $Y=(4,\ 5)$. The high elements in $X$ is the first and third elements, and the high elements in $Y$ 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`.
Input #2
5
1 2 3 4 5
Output #2
\-1
Input #3
7
1 3 2 5 6 4 7
Output #3
0001101
Input #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
Output #4
000000000001100101010010011101
API Response (JSON)
{
  "problem": {
    "name": "High Elements",
    "description": {
      "content": "You are given $P$, a permutation of $(1,\\ 2,\\ ...\\ N)$. A string $S$ of length $N$ consisting of `0` and `1` is a _good string_ when it meets the following criterion: *   The sequences $X$ and $Y$ ar",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "agc028_e"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "You are given $P$, a permutation of $(1,\\ 2,\\ ...\\ N)$.\nA string $S$ of length $N$ consisting of `0` and `1` is a _good string_ when it meets the following criterion:\n\n*   The sequences $X$ and $Y$ ar...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments