はじめに AtCoder Problems の Recommendation を利用して、過去の問題を解いています。 AtCoder さん、AtCoder Problems さん、ありがとうございます。 今回のお題 Tenka1 Programmer Contest C - Stones Difficulty: 946 今回のテーマ、累積和 問題より最終的な石の並びは、すべてが白........、全てが黒########、もしくは左白右黒.....###のいずれかに変更します。 少々厄介なのは.#....#.#.の様なパターンで、左の.#.は...に、右の#.#.は####に変更するのが最小値となります。 そこで、左から右に.及び#の累積和を取り、その位置での変更個数を調べて最小値を求めます。 n = gets.to_i s = gets.chomp.bytes dot = '.'.ord