1691: 数列
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:6
题目描述
给定一个长度是n的数列A,我们称一个数列是完美的,
当且仅当对于其任意连续子序列的和都是正的。
现在你有一个操作可以改变数列,选择一个
区间[X,Y]满足Ax+Ax+1+…+Ay<0,1<X≤Y<n,
令S=Ax+Ax+1+…+Ay,对于Ax-1和AY+1分别加上
S,Ax和Ay分别减去S(如果X=Y就减去两次)。
问最少几次这样的操作使得最终数列是完美的。
输入
第一行一个数n,以下n个数。
输出
一个数表示最少的操作次数,如果无解输出-1.
样例输入 复制
5
13
-3
-4
-5
62
样例输出 复制
2
提示
【样例解释】
首先选择区间[2,4],之后数列变成1,9,-4,7,50,
然后选择[3,3],数列变成1,5,4,3,50
【数据规模】2,
对于2%的数据,满足1≤N≤5;
对于100%的数据,满足1≤N≤105;
1≤|A[i]| ≤231-1。