5791: 括号匹配
[Creator : ]
Description
众所周知,任何一个现代编辑器都有括号匹配功能。当你编辑代码的时候,把光标移到一个括号上,编辑器就会提示你与之对应的括号。小 F 想研究这个功能的原理。
为了简化问题,小 F 打算只研究代码中的大括号。去掉其它字符后,代码中只有 $\{$(左大括号)和 $\}$(右大括号)两种字符,总长度为 。
括号匹配的规则是:
小 F 研究了三天三夜,还没研究出来。无奈之下,他请你给他写一个程序,完成这个功能。
为了简化问题,小 F 打算只研究代码中的大括号。去掉其它字符后,代码中只有 $\{$(左大括号)和 $\}$(右大括号)两种字符,总长度为 。
括号匹配的规则是:
- $\{\}$ 是最简单的括号序列,其左右括号互相匹配;
- 如果 $S$ 是一个括号序列,那么 $\{S\}$ 也是一个括号序列,其左边的左括号和右边的右括号互相匹配;
- 如果 $A,\ B$ 都是一个括号序列,那么 $AB$(将 $A$ 和 $B$ 直接拼接)也是一个括号序列。
小 F 研究了三天三夜,还没研究出来。无奈之下,他请你给他写一个程序,完成这个功能。
Input
第一行两个整数 $n\ (1 \leq n \leq 10^5),\ p\ (1 \leq p \leq n)$,表示程序的长度和光标的位置。
第二行一个字符串 $s\ (|s|=n,\ s_i \in \{\{,\ \}\}$,表示小 F 的程序。
第二行一个字符串 $s\ (|s|=n,\ s_i \in \{\{,\ \}\}$,表示小 F 的程序。
Output
一行一个正整数,表示与之匹配的光标的位置。
Sample 1 Input
4 3
{{}}
Sample 1 Output
2
Sample 2 Input
8 4
{{}{{}}}
Sample 2 Output
7