序列划分
题解
讨论
查看他人的提交
题号:NC282073
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Alice现在通过随机数生成了一个长度为
的序列。
定义一个序列是好的,当且仅当:
- 对于这个序列,任意截取序列中前若干个数字,其和均非负。
例如:序列[1, 2, -3]是好的,序列[5, -3, -3, 9]是不好的。这是因为对于5 - 3 - 3 = -1 < 0。
现在Alice希望把这个序列划分成
若干个连续的子序列
,使得划分后的每个子序列都是好的。有些情况下不止一种划分方案,Alice希望你给出最多的序列划分方案。
输入描述:
第一行一个正整数
表示序列的长度
。其中保证
。
接下来一行
个整数
,表示这个序列。其中保证
。
输出描述:
存在划分方案时,给出最多划分数量。
不存在划分方案时,给出-1。
示例1
输入
复制
4 1 2 -3 0
4 1 2 -3 0
输出
复制
2
2
序列划分
返回全部题目
列表加载中...
4 1 2 -3 0
2