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
提示
制約
- 入力はすべて整数
Sample Explanation 1
操作回数が最小である操作の例を以下に示します。 - について、 に対して操作をすることで の要素の総和が になります。 - について、 に対して操作をした後、 に対して操作をすることで の要素の総和が になります。 - について、 に対して操作をすることで の要素の総和が になります。 - について、 に対して操作をすることで の要素の総和が になります。 - について、 に対して操作をすることで の要素の総和が になります。