Олимпиадный тренинг

Задача . A. Леша и разбиение массива


Одним весенним днем, идя в университет, Леша нашел массив 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 должны удовлетворять следующим условиям:

  • l1 = 1
  • rk = n
  • ri + 1 = li + 1, для всех 1 ≤ i < k.

Если ответов несколько, то выведите любой.


Примеры
Входные данныеВыходные данные
1 3
1 2 -3
YES
2
1 2
3 3
2 8
9 -12 3 4 -4 -10 7 3
YES
2
1 2
3 8
3 1
0
NO
4 4
1 2 3 -5
YES
4
1 1
2 2
3 3
4 4

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя