atcoder#AGC054D. [AGC054D] (ox)

[AGC054D] (ox)

配点 : 10001000

問題文

(, ), o, x からなる文字列 SS が与えられます. あなたは,SS の隣接する 22 文字をswapする操作を好きな回数行うことができます. 次の条件を達成するために必要な最小の操作回数を求めてください.

  • SS に登場するすべての o() で,x)( で置き換え,() のみからなる文字列 SS' を作る. この時,SS'括弧の対応が取れている文字列である.
括弧の対応が取れている文字列の定義

括弧の対応が取れている文字列とは,次のうちいずれかの条件を満たす文字列です.

  • 空文字列
  • ある括弧の対応が取れている空でない文字列 s,ts, t が存在し,s,ts, t をこの順に連結した文字列
  • ある括弧の対応が取れている文字列 ss が存在し、 (, ss, ) をこの順に連結した文字列
なお,この問題の制約より,目標を達成することは必ず可能です.

制約

  • SS(, ), o, x からなる文字列
  • SS11 つ以上の () を含み,またそれらの個数は等しい
  • S8000|S| \leq 8000

入力

入力は以下の形式で標準入力から与えられる.

SS

出力

答えを出力せよ.

)x(
3

)x(x)(x()(x) と操作すればよいです. このとき,S=S'=()() であり,これは括弧の対応の取れている文字列です.

()ox
2
()oxo(xxx))))oox((oooxxoxo)oxo)ooo(xxx(oox(x)(x()x
68