题目描述
传说中有一种蜜汁序列特别甜,所以爱吃甜的强渣学长特别喜欢这种序列。。。
蜜汁序列的定义如下:对于一个长度为n的序列a1,...,an,如果这个序列的n个前缀和全部非负,即若a1>=0,a1+a2>=0,...,a1+a2+...+an>=0,则称a序列是蜜汁序列。。。
显然一些蜜汁序列可以分成更多的蜜汁序列,例如1 2这个蜜汁序列可以分成1和2两个蜜汁序列,现在有一个长度为n的蜜汁序列,要求你把他分成若干连续的段,使得每段都是一个蜜汁序列,问最多可以分成多少段?
输入
多组用例,每组用例首先输入一个整数n表示给出的蜜汁序列长度,之后输入n个整数a1,a2,...,an表示该序列的n个元素,以文件尾结束输入
输出
对于每组用例,输出一个整数占一行,表示该序列最多可以分成多少个蜜汁序列
数据范围
用例不超过10组,1<=n<=10^6,-10^4<=ai<=10^4(i=1,2,...,n)
样例输入
1
1
3
1 2 3
样例输出
1
3
题解:
既然输入的是一个蜜汁序列,那么前i(i=1...n)个肯定是蜜汁序列,本题突破口在从后往前遍历,当该数列最后一个为非负整数时,那么这个数可以分开单独成一个蜜汁序列,然后如果是负数,那么就往前遍历,每次把这几个数都加起来,当这几个数之和大于等于0时,这几个数便是一个蜜汁序列,一直遍历到第一个元素。统计可以分成多少个蜜汁序列再输出。
ac代码: