CFCF2190B1.Sub-RBS (Easy Version)

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

本题为该问题的简单版本。不同版本间的差异在于:本版本仅需针对完整字符串 ss 进行求解,且保证 ss 是正则括号序列,同时对 nn 的约束条件更宽松。

我们称括号序列 aa 比括号序列 bb 更优,当且仅当满足以下任一条件:

  1. bbaa 的前缀,但 aba \ne b
  2. iiaabb 第一个出现字符不同的位置(若存在),且满足 ai=(a_i = \texttt{(}bi=)b_i = \texttt{)}

给定一个长度为偶数 nn正则括号序列^{∗} ss

ss 的所有非空子序列^{†} 中,找出满足以下条件的正则括号序列 tt

  • tt 是正则括号序列;
  • ttss 更优。

请输出满足条件的 tt 的最大可能长度。若不存在这样的 tt,请输出 1-1

^{∗} 正则括号序列(Regular Bracket Sequence, RBS)的定义:将序列中原有字符间插入字符 1\texttt{1}+\texttt{+} 后,能转化为合法算术表达式的括号序列。例如:

  • 括号序列 ()()\texttt{()()}(())\texttt{(())} 是正则的(转化后的表达式分别为 (1)+(1)\texttt{(1)+(1)}((1+1)+1)\texttt{((1+1)+1)});
  • 括号序列 )(\texttt{)(}(\texttt{(})\texttt{)} 不是正则的。

^{†} 子序列的定义:若序列 aa 可通过删除序列 bb 中任意位置的若干个(可能为 0 个或全部)元素得到,则称 aabb 的子序列。

输入格式

输入包含多组测试用例。第一行输入测试用例数 tt1t1041 \le t \le 10^4),后续为各测试用例的描述。

每组测试用例的第一行输入一个整数 nn2n21052 \le n \le 2 \cdot 10^5,且 nn 为偶数),表示字符串 ss 的长度。
第二行输入一个长度为 nn 的字符串 ss,仅由字符 (\texttt{(})\texttt{)} 组成。

保证给定的序列 ss 是正则括号序列。
保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5

输出格式

对于每组测试用例,输出一个整数:满足条件的 ss 的非空子序列 tt(正则括号序列且比 ss 更优)的最大可能长度。若不存在这样的 tt,输出 1-1

输入输出样例

  • 输入#1

    3
    2
    ()
    8
    (()(()))
    6
    (())()

    输出#1

    -1
    6
    -1

说明/提示

第一个样例中,ss 唯一的非空正则括号子序列就是 t=s=()t = s = \texttt{()}。由于 tt 并不比 ss 更优,因此输出 1-1

第二个样例中,可选择 t=((()))t = \texttt{((()))}ttss 第一个出现差异的位置是 i=3i=3t3=(t_3 = \texttt{(}s3=)s_3 = \texttt{)},因此 ttss 更优。无法选择更长的子序列,因为唯一更长的正则括号子序列是 ss 本身,而它并不比自身更优。因此输出 66

首页