解法
から取り出した宝石を
に再び詰めた後、再びその宝石を取り出すのは、ただ操作回数を無駄にしているだけなので、先に取り出す宝石の個数を決めた後、捨てる宝石を全て捨てるのが最適になります。
の左から取り出す宝石の個数を
個、
の右から取り出す宝石の個数を
個とします。
このとき、捨てる操作は合計で回行うことができます。
左から個、右から
個の宝石を取り出すとしたときに、残った
回の操作で行う最適な「宝石を捨てる」操作は、
個の宝石を昇順でソートし、前から最大
個、価値が負の宝石を選ぶ
となります。
この操作は、個選ぶのが最大
、
個選ぶのが最大
、そして捨てる個数がたかだか
個であり、この個数も最大で
個です。取り出した宝石のソートおよび捨てる操作も
でできるので、解説にもあるように、
とすると、
で最適解を調べることができます。
感想
計算量解析、考察ミスが怖くてじっくり時間をかけました。
ここら辺の証明等を高速に行いたいですね。