Codeforces Round 258 (Div. 2) |
---|
Закончено |
Как и все программисты, вы очень любите массивы. На день рождения друзья подарили вам массив a, состоящий из n различных целых чисел.
К сожалению, массив a слишком маленький. А вы хотите большой массив! Друзья договорились дать вам массив побольше, но только если вы сможете верно ответить на следующий вопрос: можно ли отсортировать массив a (по возрастанию), выполнив переворот ровно одного подотрезка a? Определения подотрезка и переворота находятся в примечаниях.
В первой строке записано целое число n (1 ≤ n ≤ 105) — размер массива a.
Во второй строке записано n различных целых чисел через пробел: a[1], a[2], ..., a[n] (1 ≤ a[i] ≤ 109).
Выведите ответ на поставленный вопрос: строку «yes» или «no» (без кавычек).
Если ваш ответ — «yes», то затем выведите два целых числа, обозначающие индекс начала и индекс конца (индекс начала не может быть больше индекса конца) переворачиваемого подотрезка. Если есть несколько способов выбрать эти индексы, выведите любой из них.
3
3 2 1
yes
1 3
4
2 1 3 4
yes
1 2
4
3 1 2 4
no
2
1 2
yes
1 1
Пример 1. Можно перевернуть весь массив и получить [1, 2, 3].
Пример 3. Никакой подотрезок нельзя перевернуть так, чтобы массив стал отсортированным.
Определения
Подотрезок [l, r] массива a — это последовательность a[l], a[l + 1], ..., a[r].
Рассмотрим массив a размера n. Допустим вы переворачиваете его подотрезок [l, r]. Полученный массив будет выглядеть следующим образом:
a[1], a[2], ..., a[l - 2], a[l - 1], a[r], a[r - 1], ..., a[l + 1], a[l], a[r + 1], a[r + 2], ..., a[n - 1], a[n].
Название |
---|