CF754A Lesha and array splitting
题目描述
在一个春日里,Lesha 在去大学的路上发现了一个数组 $A$。Lesha 喜欢将数组拆分成若干部分。这一次,Lesha 决定将数组 $A$ 拆分为若干个(也可以只拆分成一个)新的数组,使得每个新数组中元素的和都不为零。还有一个条件是,这些新数组拼接起来之后恰好可以组成原数组 $A$。
Lesha 现在累了,于是请你帮忙来拆分数组。请帮助 Lesha!
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 100$),表示数组 $A$ 的元素个数。
第二行包含 $n$ 个整数 $a_{1}, a_{2}, ..., a_{n}$($-10^3 \leq a_{i} \leq 10^3$),表示数组 $A$ 的元素。
输出格式
如果无法满足条件将数组 $A$ 进行拆分,则输出一行 "NO"(不含引号)。
否则,第一行输出 "YES"(不含引号)。接下来的第二行输出一个整数 $k$,表示新数组的个数。然后的 $k$ 行中,每行输出两个整数 $l_{i}$ 和 $r_{i}$,表示第 $i$ 个新数组为原数组 $A$ 的子区间 $A[l_{i}...r_{i}]$。整数 $l_{i}, r_{i}$ 需要满足:
- $l_{1}=1$
- $r_{k}=n$
- 对于每个 $1 \leq i < k$,都有 $r_{i}+1 = l_{i+1}$。
如果有多组解,输出任意一组即可。
说明/提示
由 ChatGPT 5 翻译