atcoder#ABC275F. [ABC275F] Erase Subarrays
[ABC275F] Erase Subarrays
配点 : 点
問題文
正整数列 が与えられます。 あなたは次の操作を 回以上何度でも繰り返せます。
- から(空でない)連続する部分列を選び、削除する。
に対し、次の問題を解いてください。
- の要素の総和をちょうど にするために必要な操作回数の最小値を求めてください。ただし、どのように操作を行っても の要素の総和をちょうど にできない場合は代わりに
-1
と出力してください。
なお、 が空である時、 の要素の総和は であるとします。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
行出力せよ。 行目には に対する答えを出力せよ。
4 5
1 2 3 4
1
2
1
1
1
操作回数が最小である操作の例を以下に示します。
- について、 に対して操作をすることで の要素の総和が になります。
- について、 に対して操作をした後、 に対して操作をすることで の要素の総和が になります。
- について、 に対して操作をすることで の要素の総和が になります。
- について、 に対して操作をすることで の要素の総和が になります。
- について、 に対して操作をすることで の要素の総和が になります。
1 5
3
-1
-1
0
-1
-1
12 20
2 5 6 5 2 1 7 9 7 2 5 5
2
1
2
2
1
2
1
2
2
1
2
1
1
1
2
2
1
1
1
1