1619: Сортування за правилами

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 25
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

Дано масив \(A\), який містить \(N\) цiлих чисел. Визначте, чи можна даний масив вiдсортувати у порядку зростання виконуючи лише одну з наступних операцiй:

  • помiняти два елементи мiсцями

  • змiнити порядок елементiв на зворотнiй на будь-якому сегментi

Необхiдно встановити, чи виконає дане завдання перша, друга чи жодна з операцiй.

Формат вхiдних даних

Перший рядок мiстить цiле число \(N\) \((2 \le N \le 100000)\) - кiлькiсть елементiв масиву.

Наступний рядок мiстить елементи масиву \(A\) \((0 \le A_i \le 100000)\), якi роздiляються пропуском.

Формат вихiдних даних

  1. Якщо масив уже вiдсортований, то вивести ’\(yes\)’ в одному рядку. Бiльше нiчого не треба виводити.

  2. Якщо масив можна вiдсортувати наведеними операцiями, то у першому рядку виводимо ’\(yes\)’, а в другому:

  • якщо елементи можна помiняти мiсцями, то вивести \(swap\) \(l\) \(r\), де \(l, r\) iндекси елементiв, якi обмiнюються мiсцями, причому \(l < r\). Елементи iндексуються вiд 1 до \(N\).

  • в iншому випадку вивести \(reverse\) \(l\) \(r\), де \(l\) лiва межа сегменту, а \(r\) - права.

Якщо можна використати або \(reverse\), або \(swap\), то вивести \(swap\).

Якщо ж масив вiдсортувати за вказаними правилами неможливо, то вивести ’\(no\)’.

Приклад вхідних даних

2
4 2

Приклад вихідних даних

yes
swap 1 2

Приклад вхідних даних

3
3 1 2

Приклад вихідних даних

no

Приклад вхідних даних

6
1 5 4 3 2 6

Приклад вихідних даних

yes
reverse 2 5

Коментарі

Ще немає коментарів.