atcoder#CODEFESTIVAL2017QUALAF. Squeezing Slimes
Squeezing Slimes
配点 : 点
問題文
匹のスライムが横一列に並んでいます。 最初、スライムの大きさはすべて です。
すぬけ君は次の操作を繰り返し行うことができます。
- 正の偶数 をひとつ選ぶ。 位置が連続する 匹のスライムを選び、それらのうち左から 番目、 番目、…、 番目のスライムをそれぞれペアにする。 そして、各ペアごとに 匹のスライムを合成して 匹のスライムにする。 ここで、合成後のスライムの大きさは、合成前のスライムの大きさの和とする。 また、合成後の 匹のスライムの順序は、合成前の 組のペアの順序のままである。
すぬけ君の目標は、スライムをちょうど 匹にして、それらのうち左から () 番目のスライムの大きさをちょうど にすることです。 すぬけ君が目標を達成するために必要な操作回数の最小値を求めてください。
なお、 は入力として与えられず、 であるとします。
制約
- は整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
すぬけ君が目標を達成するために必要な操作回数の最小値を出力せよ。
2
3 3
2
次のように操作を行えばよいです。 操作対象のスライムを太字で表しています。
- (1, 1, 1, 1, 1, 1) → (1, 2, 2, 1)
- (1, 2, 2, 1) → (3, 3)
4
2 1 2 2
2
次のように操作を行えばよいです。
- (1, 1, 1, 1, 1, 1, 1) → (2, 1, 1, 1, 1, 1)
- (2, 1, 1, 1, 1, 1) → (2, 1, 2, 2)
1
1
0
10
3 1 4 1 5 9 2 6 5 3
10