#P12981. [AGC028E] High Elements

    ID: 12165 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 9 上传者: 标签>CF2600贪心动态规划线段树构造数据结构前缀和

[AGC028E] High Elements

题目描述

给定一个 (1, 2, ... N) (1,\ 2,\ ...\ N) 的排列 P P

长度为 N N 、仅由 01 组成的字符串 S S 是否为好字符串,按照如下方式判定:

  • 构造数列 X X Y Y ,方法如下:
    • 首先,将 X X Y Y 设为空数列。
    • 对于每个 i=1, 2, ..., N i=1,\ 2,\ ...,\ N ,依次判断:若 Si= S_i= 0,则将 Pi P_i 加入 X X 的末尾;若 Si= S_i= 1,则将 Pi P_i 加入 Y Y 的末尾。
  • X X 中的高项个数与 Y Y 中的高项个数相等,则 S S 是好字符串。这里,某个数列的第 i i 项是高项,当且仅当该项是该数列第 1 1 项到第 i i 项中的最大值。

请判断是否存在好字符串,若存在请输出字典序最小的一个。

输入格式

输入从标准输入读入,格式如下:

N N P1 P_1 P2 P_2 ... ... PN P_N

输出格式

若不存在好字符串,则输出 -1。若存在,则输出字典序最小的好字符串。

输入输出样例 #1

输入 #1

6
3 1 4 6 2 5

输出 #1

001001

输入输出样例 #2

输入 #2

5
1 2 3 4 5

输出 #2

-1

输入输出样例 #3

输入 #3

7
1 3 2 5 6 4 7

输出 #3

0001101

输入输出样例 #4

输入 #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

说明/提示

限制

  • 1N2×105 1\leq N\leq 2\times 10^5
  • 1PiN 1\leq P_i\leq N
  • P1, P2, ..., PN P_1,\ P_2,\ ...,\ P_N 互不相同。
  • 输入均为整数。

样例解释 1

若取 S= S= 001001,则 X=(3, 1, 6, 2) X=(3,\ 1,\ 6,\ 2) Y=(4, 5) Y=(4,\ 5) X X 中的高项为第 1 1 项和第 3 3 项。Y Y 中的高项为第 1 1 项和第 2 2 项。高项个数相等,因此 001001 是好字符串。不存在字典序更小的好字符串,所以答案为 001001