#ATagc054d. [AGC054D] (ox)
[AGC054D] (ox)
题目描述
给定一个由 (、)、o、x 组成的字符串 。你可以任意次数地交换 中相邻的两个字符。请你求出,为了满足下述条件,所需的最小操作次数。
- 将 中出现的每个
o替换为(),每个x替换为)(,从而得到仅由(和)组成的新字符串 。此时, 必须是括号匹配的字符串。
括号匹配的字符串定义如下:
- 空字符串;
- 存在括号匹配的非空字符串 、,将 和 按此顺序连接得到的字符串;
- 存在括号匹配的字符串 ,将
(、、)按此顺序连接得到的字符串。
此外,根据本题的限制条件,目标一定可以实现。
输入格式
输入为一行,包含一个字符串 。
输出格式
输出所需的最小操作次数。
样例 1
输入
)x(
输出
3
样例 2
输入
()ox
输出
2
样例 3
输入
()oxo(xxx))))oox((oooxxoxo)oxo)ooo(xxx(oox(x)(x()x
输出
68
说明/提示
限制
- 仅由
(、)、o、x组成。 - 至少包含一个
(和一个),且它们的数量相等。
样例解释 1
)x( → x)( → x() → (x),这样操作即可。此时 $S' = ()()`,它是一个括号匹配的字符串。
由 ChatGPT 4.1 翻译