省エネなコードを書きたい!

競プロについて書いたりします

気ままに考察/ABC169-E/Count Median

問題はこちら。
atcoder.jp
【初考】
 手の付け所がわからなかった。即解答チェック(方針すら思い浮かばない問題はこれでいい気がする)。
【解答】
 まず中央値として考えられる値の上限、下限を考え範囲を狭める。感覚的に言えば各$ X_{i} $が小さい方が中央値も当然小さくなるし、逆も然りである。よって下限は各範囲が下限$ A_{i} $を取るとき、上限は各範囲が上限$ B_{i} $を取るときである。逆にこの範囲内においてある$ X_{i} $を1増やすと$ N $が奇数なら1、偶数なら$ \frac{1}{2} $だけ中央値は増加することになる。つまり範囲内のすべての可能性を再現できることとなる。後は$ N $の偶奇で分けてコーディングすればOK。
【コード】
atcoder.jp
【後考察】
 上限、下限を考えれば後は再現性云々はすぐ示せた。平均値ならばまだしも中央値で単調性らしきものを考えるのは難しかった。