AGC 032 A - Limited Insertion
bi′=bi+1−1として0-basedで考える。k∈{0,1,...,N−1}が与えられたとせよ。bk′より左にある数(b0′,...,bk−1′)がbk′個より多く挿入されると、もうbk′は挿入できない。また、bk′より左にある数を少なくともbk′個挿入ずみでないと、bk′はまだ挿入できない。したがって、B={bi′∣bi′より左の数がちょうどbi′個挿入ずみ}から1つ選んで挿入する操作をN回繰り返せればそれが答えになるし、できなければ不可能である。ここでもう少し考えると、常にBの中でいちばん右にある数だけ調べれば良いことに気づく。というのも、bi′より右にある数が挿入ずみかどうかはbi′が挿入できるかどうかに影響しないからである。計算量はO(n2)。
操作を逆順に見るとよりシンプルになるらしい。それは最初に検討するべきだった。