Problem5235--数列

5235: 数列

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给定一个长度是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就减两次)。问最少几次这样的操作使得最终数列是完美的。

Input

第一行一个数n,以下n个数。

Output

一个数表示最少的操作次数,如果无解输出-1。

Sample 1 Input

5
13
-3 
-4
-5
62

Sample 1 Output

2

HINT

【样例解释】
首先选择区间[2,4],之后数列变成1,9,-4,7,50,然后选择[3,3],数列变成1,5,4,3,50
【数据规模】

对于20%的数据,满足1≤N≤5;
对于100%的数据,满足1≤N≤10^5; 1≤|A[i]|≤2^31-1。
【题目来源】
https://www.luogu.com.cn/problem/P1667

Source/Category

基础算法 4.4.离散化