問題
提出コード
これを自力で解けなかったのは結構悔しいです…最近思い通りになかなか解けないですね
解法
,
,
となるような
の組を探します。
要素が3つ存在するので、まずは真ん中を決め打ちしたときののペアの個数を求めることを考えます。
あるについて、
となるような
および
となるような
の個数は、それぞれ二分探索で求めることができます。
の個数
を満たすことから、式変形をすると
を満たす必要があります。ということで、
までで、上の条件をみたすものの個数を調べるため、
から、
となる
の個数を引けばよいです。
これは、二分探索を利用することで求められます。の個数
を満たすことから、
を満たす必要があります。
ということで、以降でこの条件を満たす区間の個数を求めるため、
となる
の個数から、
を引けばよいです。
ということで、と
の個数を求められたので、
のペアの個数は、それぞれの個数の積になります。
ただし、このままだとを満たさないものが存在しています。
ということで、最後にこうならないものを全体から引けば、答えが求まります。
となる
の組の個数を求める
となる
のペアを決めたとき、ありうる
は
~
です。
今回は、を決め打ったときに、上の
をみたす
のペアの個数を求めていきます。
となる
の中で、最も遠いような
をまず探します。
これは、二分探索で求めることができます。これを仮にとします。
すると、のペアは、今求めた
~今求めた
の中から2つの数字を選ぶ方法と同じになります。
このとき、すべてのについて
を満たしています。なぜなら、
がこの条件を満たす
の中で最も遠い場所になるので、それより後ろの場所を
としても、
との距離は小さくなるだけです。
ということで、から、
となる
の個数を
としたときに、
となる
の組の個数は、
となります。
全てのについてこれを求め、最初に数えたものから引いていけば、最終的な答えとなります。