Codeforces Round 390 (Div. 2) |
---|
Закончено |
Одним весенним днем, идя в университет, Леша нашел массив A. Леша очень любит разбивать массив на несколько частей. В этот раз он решил, что неплохо было бы найти разбиение массива A на несколько, а возможно и на один, новых массивов, причем чтобы сумма элементов в каждом новом массиве не была равна нулю. Ещё одним необходимым условием является то, что при склейке новых массивов должен получиться старый массив A.
Леша очень устал после университета, и поэтому разбиение массива было поручено вам. Помогите Леше!
В первой строке входных данных находится одно целое число n (1 ≤ n ≤ 100) — количество элементов в массиве A.
В следующей строке входных данных находятся n целых чисел a1, a2, ..., an ( - 103 ≤ ai ≤ 103) — элементы массива A.
Если необходимого разбиения массива A не существует, то в единственной строке выходных данных выведите «NO» (без кавычек).
Иначе в первой строке строке выходных данных выведите «YES» (без кавычек). В следующей строке выходных данных следует вывести целое число k — количество массивов в разбиении. В каждой из следующих k строк следует вывести пару целых чисел li, ri, означающих, что подотрезок A[li... ri] исходного массива A является i-м массивом в разбиении. Числа li, ri должны удовлетворять следующим условиям:
Если ответов несколько, то выведите любой.
3
1 2 -3
YES
2
1 2
3 3
8
9 -12 3 4 -4 -10 7 3
YES
2
1 2
3 8
1
0
NO
4
1 2 3 -5
YES
4
1 1
2 2
3 3
4 4
Название |
---|