#ATarc141c. [ARC141C] Bracket and Permutation

[ARC141C] Bracket and Permutation

题目描述

对于一个长度为 2N2N 的字符串 S=S1S2S2NS=S_1S_2\dots S_{2N},如果 SSNN(NN) 组成,则称 SS 为“括号列”。

此外,在“括号列”SS 中,满足以下任一条件的称为“正确的括号列”:

  • 空字符串;
  • 存在某个“正确的括号列”AA,将 (AA) 按此顺序连接得到的字符串;
  • 存在非空的“正确的括号列”A,BA,B,将 A,BA,B 按此顺序连接得到的字符串。

给定两个由 112N2N 的整数构成的排列 P=(P1,P2,,P2N)P=(P_1,P_2,\dots,P_{2N})Q=(Q1,Q2,,Q2N)Q=(Q_1,Q_2,\dots,Q_{2N})

请判断是否存在一个“括号列”S=S1S2S2NS=S_1S_2\dots S_{2N},满足以下条件:

  • 在所有使得 Sp1Sp2Sp2NS_{p_1}S_{p_2}\dots S_{p_{2N}} 为“正确的括号列”的 112N2N 的排列 pp 中,字典序最小的为 PP
  • 在所有使得 Sp1Sp2Sp2NS_{p_1}S_{p_2}\dots S_{p_{2N}} 为“正确的括号列”的 112N2N 的排列 pp 中,字典序最大的为 QQ

如果存在这样的 SS,请输出其中任意一个。如果不存在,请输出 -1

输入格式

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

NN P1P_1 P2P_2 \dots P2NP_{2N} Q1Q_1 Q2Q_2 \dots Q2NQ_{2N}

输出格式

如果存在满足条件的“括号列”SS,请输出其中任意一个。如果有多个答案,可以输出任意一个。

如果不存在,请输出 -1

样例 1

输入

2
1 2 4 3
4 3 1 2

输出

())(

样例 2

输入

2
1 3 2 4
4 3 2 1

输出

-1

样例 3

输入

3
2 1 5 3 4 6
6 5 3 4 2 1

输出

-1

说明/提示

限制

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Pi,Qi2N1 \leq P_i, Q_i \leq 2N
  • P,QP,Q 分别是 112N2N 的整数的排列
  • 输入的所有值均为整数

样例解释 1

S=S= ())( 时,Sp1Sp2Sp3Sp4S_{p_1}S_{p_2}S_{p_3}S_{p_4} 能成为“正确的括号列”的 ppp=(1,4,2,3),(1,4,3,2)p=(1,4,2,3),(1,4,3,2) 等,其中字典序最小的是 p=(1,2,4,3)p=(1,2,4,3),最大的是 p=(4,3,1,2)p=(4,3,1,2),因此 SS 满足条件。

样例解释 2

不存在满足条件的 SS

由 ChatGPT 4.1 翻译