#P15730. [JAG 2024 Summer Camp #2] Broken Parentheses

[JAG 2024 Summer Camp #2] Broken Parentheses

说明

我们定义一个正确的括号序列为满足以下任一条件的字符串:

  • 它是一个空字符串。
  • 它由 ((AA)) 按此顺序连接而成,其中 AA 是一个正确的括号序列。
  • 它由 AABB 按此顺序连接而成,其中 AABB 都是非空的正确括号序列。

给定一个长度为 NN 的字符串 SS,由字符 (()) 组成。

对于每个满足 0iN0 \leq i \leq Nii,定义字符串 TiT_i 为:将 SS 的长度为 NiN - i 的后缀与 SS 的长度为 ii 的前缀的反转字符串按此顺序连接而得到的字符串。也就是说,如果我们用 SiS_i 表示 SS 的第 ii 个字符,那么 TiT_i 由字符 $S_{i+1}, S_{i+2}, \ldots, S_N, S_i, \ldots, S_2, S_1$ 按顺序排列而成。

对于每个满足 0iN0 \leq i \leq NTiT_i,解决以下问题:

  • 考虑一种操作:将 TiT_i 中的一个字符替换为 (())。求使 TiT_i 成为一个正确的括号序列所需的最少操作次数。

输入格式

输入以如下格式给出:

NS\begin{aligned} &N \\ &S \end{aligned}
  • 2N200,0002 \leq N \leq 200,000
  • NN 是偶数。
  • SS 是一个长度为 NN 的字符串,仅由 (()) 组成。

输出格式

输出 N+1N + 1 行。在第 i+1i + 1 行输出 TiT_i 的答案。

4
()()
0
2
2
2
2
6
)))(((
4
2
2
0
0
0
0
8
)())())(
3
1
3
1
1
1
1
1
1

提示

翻译由 DeepSeek V3.2 完成