loj#P3150. 「CEOI2016」匹配

「CEOI2016」匹配

题目描述

译自 CEOI2016 Day2 T1「Match

我们定义一个合法的括号序列是如下之一:

  • 一个空串;
  • (B),其中 B 是一个合法的括号序列;
  • LR,两个合法的括号序列 LR 直接拼接而成得到的串。

BB 是一个长度为 NN 的合法括号序列。定义 BiB_i 是序列 BB 中第 ii 个字符。对于两个下标 i,ji,j,其中 1i<jN1\le i<j\le N,我们称 BiB_iBjB_j 是匹配的括号,如果满足:

  • Bi=(B_i=\texttt{(}Bj=)B_j=\texttt{)}
  • i=j1i=j-1,或者子序列 C=Bi+1Bi+2Bj1C=B_{i+1}B_{i+2}\ldots B_{j-1} 是合法的括号序列。

SS 是一个只包含小写英文字母的字符串。我们定义 SiS_iSS 串中第 ii 个字符。我们称一个合法的括号序列 BBSS 匹配,如果满足:

  • BB 的长度和 SS 相等;
  • 对于任意下标 i,ji,j 对,且 i<ji<j。如果 BiB_iBjB_j 是匹配的,那么 Si=SjS_i=S_j

对于给定长度为 NNSS 串,请找到字典序最小的合法括号序列,满足和 SS 匹配。如果这样的括号序列不存在,输出 1-1

输入格式

输入一行一个长度为 NN 且只包含小写英文字母的串 SS

输出格式

输出长度为 NN 的,和 SS 匹配且字典序最小的合法括号序列,如果这样的括号序列不存在,输出 1-1

abbaaa

(()())

abab

-1

数据范围与提示

对于全部数据,2N1052\le N\le 10^5

  • 对于其中 1010 分的测试点,N18N\le 18
  • 对于另外 2727 分的测试点,N2×103N\le 2\times 10^3

如果存在一个下标 i (1iN)i\ (1\le i\le N),满足对于所有 j<ij<i,都有 Aj=BjA_j=B_j,且 Ai<BiA_i<B_i,我们就称括号序列 AA 的字典序小于括号序列 BB

字符 (\texttt{(} 的字典序小于字符 )\texttt{)}