問題はこちら
問題概要
長さのJ,O,Iからなる文字列が与えられる. の連続する部分文字列であり, 以下の条件を満たすものの中で最長の文字列を求めよ.
- 文字列に含まれるJ,O,Iの数が等しい.
思考の流れ
区間に含まれる2つの文字の個数が等しい問題は「累積和をして式変形」を用いることで答えることができる.
今回の問題は3つの文字の個数が等しい場合である.
区間に含まれるそれぞれの文字の数をとすると区間に含まれる3つの文字の数が等しいという条件はと表すことができる.
式変形するととなる.
とすると, となるようなの組の数が答えとなる.
各に対してをタプルとして持ち, 昇順ソートすると, が等しいものが並ぶ. そうして前から見ていくことで最長のものを探すことができる.
提出プログラム
未提出
感想
思考の流れの最後の矢印が思い浮かばなかった.