#T057. 分割数组

分割数组

题目描述

小田 很喜欢把数组分成几个部分,这一次,小田 决定把 数组 aa 分割成好几段(最少是一段),使得每一段的元素之和都不为 00

需要注意的是,每一段数组的元素应该是连续的,例如有数组 [1,2,3,4,5][1, 2, 3, 4, 5]

  • 这里演示了一种合理的分段方式:[1,2,3],[4,5][1, 2, 3], [4, 5]
  • 这里演示了一种不合理的分段方式:[1,2,4],[3,5][1,2,4],[3,5]

输入

第一行输入一个正整数 nn,表示数组元素的数量。

第二行输入 nn 个整数 aia_i

1n100,103ai1031 \leq n \leq 100, -10^3 \leq a_i \leq 10^3

输出

如果没有合理的分割方式,输出 NO

否则: 在第一行输出 YES。 第二行输出一个整数 kk,表示新数组的个数。 接下来 kk 行,每行输出两个整数 lil_irir_i,表示第 ii 个新数组的左端点和右端点在原数组中的下标。

li,ril_i, r_i 应该按从小到大的顺序排列。

如果有多种分割方式,你只需要输出其中一种即可。

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