atcoder#AGC054D. [AGC054D] (ox)
[AGC054D] (ox)
配点 : 点
問題文
(
, )
, o
, x
からなる文字列 が与えられます.
あなたは, の隣接する 文字をswapする操作を好きな回数行うことができます.
次の条件を達成するために必要な最小の操作回数を求めてください.
- に登場するすべての
o
を()
で,x
を)(
で置き換え,(
と)
のみからなる文字列 を作る. この時, は括弧の対応が取れている文字列である.
括弧の対応が取れている文字列の定義
括弧の対応が取れている文字列とは,次のうちいずれかの条件を満たす文字列です.
- 空文字列
- ある括弧の対応が取れている空でない文字列 が存在し, をこの順に連結した文字列
- ある括弧の対応が取れている文字列 が存在し、
(
, ,)
をこの順に連結した文字列
制約
- は
(
,)
,o
,x
からなる文字列 - は つ以上の
(
と)
を含み,またそれらの個数は等しい
入力
入力は以下の形式で標準入力から与えられる.
出力
答えを出力せよ.
)x(
3
)x(
→ x)(
→ x()
→ (x)
と操作すればよいです.
このとき,()()
であり,これは括弧の対応の取れている文字列です.
()ox
2
()oxo(xxx))))oox((oooxxoxo)oxo)ooo(xxx(oox(x)(x()x
68