#T057. 分割数组
分割数组
题目描述
小田 很喜欢把数组分成几个部分,这一次,小田 决定把 数组 分割成好几段(最少是一段),使得每一段的元素之和都不为 。
需要注意的是,每一段数组的元素应该是连续的,例如有数组
- 这里演示了一种合理的分段方式:,
- 这里演示了一种不合理的分段方式:。
输入
第一行输入一个正整数 ,表示数组元素的数量。
第二行输入 个整数 。
输出
如果没有合理的分割方式,输出 NO 。
否则:
在第一行输出 YES。
第二行输出一个整数 ,表示新数组的个数。
接下来 行,每行输出两个整数 和 ,表示第 个新数组的左端点和右端点在原数组中的下标。
应该按从小到大的顺序排列。
如果有多种分割方式,你只需要输出其中一种即可。
3
1 2 -3
8
9 -12 3 4 -4 -10 7 3
1
0
4
1 2 3 -5
YES
2
1 2
3 3
YES
2
1 2
3 8
NO
YES
4
1 1
2 2
3 3
4 4