文字列を連続する L
または連続する R
のブロックに分ける. ブロック数を \(n\) とすると, 各ブロックの幸福度はそのブロックの長さ - 1 となるので, 全体の幸福度は \(N-n\) となる.
\(n \geq 3\) のときは両端でないブロックのどれかを反転させることで 1 度の操作でブロックを 2 つ減らせる. \(n = 2\) のときは端のブロックを反転させることで 1 度の操作でブロックを 1 つ減らせる. \(K\) 以下の回数の範囲でできるだけ操作を行えば最大の幸福度が求められる.