P14882 [ICPC 2019 Yokohama R] Parentheses Editor
题目描述
你正在使用一个奇怪的文本编辑器,该编辑器仅处理由开括号和闭括号组成的文本。编辑器接受以下三个键作为编辑命令来修改其中保存的文本。
- `(` 将一个开括号 `(` 追加到文本末尾。
- `)` 将一个闭括号 `)` 追加到文本末尾。
- `-` 删除文本的最后一个字符。
一个**平衡字符串**是以下之一。
- `()`
- `(X)`,其中 $X$ 是一个平衡字符串
- `XY`,其中 $X$ 和 $Y$ 都是平衡字符串
最初,编辑器保存一个空文本。你关心的是,在你的每个按键命令输入后,编辑器保存的文本中平衡子串的数量。请注意,对于出现两次或多次的相同平衡子串,它们的出现应分别计数。另外请注意,当一些平衡子串位于另一个平衡子串内部时,内部和外部的平衡子串都应被计数。
输入格式
输入包含单行的一个测试用例,该行包含若干个字符,每个字符都是编辑器的命令键,即 `(`、`)` 或 `-` 中的一个。字符数量不超过 $200000$。它们表示输入到编辑器的一个按键序列。
保证在文本为空时不会有 `-` 命令。
输出格式
在每个按键命令输入被应用后,输出编辑器保存的文本中平衡子串的数量,每个结果占一行。因此,输出行数应与输入行中的字符数相同。