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

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

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

Бали: 25,00 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

Дано масив ~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

Коментарі

Please read the guidelines before commenting.


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