AtCoder Regularr Contest 133 A 問題 Erase by Value
問題
提出解答
問題の概要
整数列 が与えられる. に存在する整数 を1つ選び, から を全て取り除く.
この操作によってできる列 のうち, 辞書式最小であるものを求めよ.
制約
解法
として を選んだときに完成する列を と書く.
指定すべき は以下である.
- が単調増加列であるとき
とするべきである. もし, だった場合, となる となる が存在するが, で, では で, となり, 辞書式最小にならない. - が単調増加列ではないとき
として, とすべきである. は 未満になり, として- であるならば, であるから, 操作後の列は 以上になる.
- であるならば, の第 項までは と一致して, となり, やはり最小にはならない.
が単調増加列かどうか, そうでない場合, を求めるための計算はともに計算量 で行うことができる.