CF1095E Almost Regular Bracket Sequence
题目描述
给定一个由 $n$ 个左括号 '(' 和右括号 ')' 组成的括号序列 $s$。
一个“正规括号序列”是指可以通过在原序列的字符之间插入字符 '1' 和 '+',将其转化为一个正确的算术表达式。例如,括号序列 "()()"、"(())" 是正规括号序列(对应的表达式为 "(1)+(1)"、"((1+1)+1)"),而 ")(" 和 "(" 则不是。
你可以将某些括号 $s_i$ 的类型进行更改。也就是说,如果 $s_i = $ ')',你可以将其改为 '(',反之亦然。
你的任务是计算有多少个位置 $i$,使得如果你将第 $i$ 个括号的类型更改后,得到的括号序列会变成一个正规括号序列。
输入格式
输入的第一行包含一个整数 $n$($1 \le n \le 10^6$),表示括号序列的长度。
第二行包含一个由 $n$ 个左括号 '(' 和右括号 ')' 组成的字符串 $s$。
输出格式
输出一个整数,表示有多少个位置 $i$ 满足:如果你将第 $i$ 个括号的类型更改后,得到的括号序列会变成一个正规括号序列。
说明/提示
由 ChatGPT 4.1 翻译