A85909.「CEOI2016」匹配

省选/NOI-

通过率:0%

时间限制:0.50s

内存限制:128MB

题目描述

译自 CEOI2016 Day2 T1「Match」

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

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

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

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

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

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

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

输入格式

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

输出格式

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

输入输出样例

  • 输入#1

    abbaaa
    

    输出#1

    (()())
    
  • 输入#2

    abab
    

    输出#2

    -1
    

说明/提示

对于全部数据,2≤N≤1052\le N\le 10^5。

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

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

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

输入解题思路,AI测评打分。不知道怎么写?

首页