#3747. 序曲-1.5-等值首尾和
序曲-1.5-等值首尾和
题目描述
假设有一个数组x[ ],它有n个元素,每一个都大于零;称x[0]+x[1]+...+x[i]为前置和(Prefix Sum),而x[j]+x[j+1]+...+x[n-1]为后置和(Suffix Sum)。试编写一个程序,求出x[ ]中有多少组相同的前置和与后置和。
说明
如果x[ ]的元素是3,6,2,1,4,5,2,于是x[]的前置和有以下7个,即3,9,11,12,16,21,23; 后置和则是2,7,11,12,14,20,23;于是11、12与23这3对就是值相同的前置和与后置和, 因为: • 11 = 3+6+2(前置和) = 2+5+4(后置和) • 12 = 3+6+2+1(前置和) = 2+5+4+1(后置和) • 23是整个数组元素的和,因此前置和与后置和一定相同。
当然,也可以用上面的方法把前置和与后置和都先算出来(两者都是从小到大的递增序列,为什么?),再进行比较,但建议不要使用这种方法,因为它需要额外的内存。
输入格式
• 第一行包含一个整数n,表示数组的长度 • 第二行包含n个正整数,表示数组元素
输出格式
• 一个整数,表示相同的前置和与后置和对数
示例输入1
7
3 6 2 1 4 5 2
示例输出1
3
示例输入2
5
1 2 3 4 5
示例输出2
1