#1013. 前缀后缀和平衡

前缀后缀和平衡

题目描述

给定一个长度为 nn 的整数序列 aa

您可以对这个序列进行若干次(可以为 00 次)操作,每次操作规则如下:

  • 选定满足 1i,jn1 \le i, j \le n 的下标 iijj(且 iji \neq j),将 aia_i 赋值为 ai+1a_i+1,同时将 aja_j 赋值为 aj1a_j-1

注意,操作过程中 aia_i 可以变为负数。

请计算出使得前缀和之和等于后缀和之和的最小操作次数。

也就是说,令 si=a1+a2++ais_i = a_1 + a_2 + \dots + a_iti=ai+ai+1++ant_i = a_i + a_{i+1} + \dots + a_n,你需要通过最少的操作次数,使得最终序列满足 s1+s2++sn=t1+t2++tns_1 + s_2 + \dots + s_n = t_1 + t_2 + \dots + t_n

输入格式

第一行包含一个整数 nn

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,相邻两个整数之间用一个空格隔开,表示初始序列 aa

输出格式

输出一行,一个整数,表示最少需要的操作次数。如果无论如何操作都无法满足条件,输出 -1

样例输入 1

5
1 2 3 4 5

样例输出 1

3

样例输入 2

6
2 3 7 4 5 8

样例输出 2

-1

说明

数据范围

对于所有测试点,保证:

  • 1n1061 \le n \le 10^6 ,
  • 1ai1061 \le a_i \le 10^6 ,
  • 保证所有的输入数值均为整数。