Home => ProblemSet => 300.1-02:xhl 找 py
Problem1781--300.1-02:xhl 找 py

1781: 300.1-02:xhl 找 py

Time Limit: 1 Sec  Memory Limit: 128 MB  Submit: 0  Solved: 0
[ Submit ] [ Status ] [ Creator: ][ 参考程序 ]

Description

有 n 个 xhl 要找 py。第 i 个 xhl 已经找了 ai 个 py。在这里,我们允许一个人有负数个 py。
你可以进行若干次操作,每次操作选定一个 2≤i<n ,让第 i 个 xhl 分别分给他相邻的 xhl 各 ai 个 py。
即:
  • ai−1=ai+ai−1
  • ai+1=ai+ai+1
  • ai=−ai
但是显然,一个人终究还是得要有非负整数个 py。因此,请你帮 xhl 求出最少操作数,使得 a均非负。

Input

第一行一个整数 n。
第二行 n 个整数 ai

Output

一行一个整数,表示最少操作数。若无论如何都不能将所有的 a变成非负整数,输出 -1。

Sample Input Copy

7
2 -1 -1 5 2 -2 9

Sample Output Copy

4

HINT

对于 20% 的数据,n≤10。
对于 100% 的数据,n≤105,|ai|≤109

Source/Category

省选