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

Задача . A. Маленький Слоник и проблема


У Маленького Слоника проблема — кто-то трогал его отсортированный по неубыванию массив a длины n и, возможно, поменял некоторые элементы этого массива местами.

Маленький Слоник не хочет звонить в полицию до тех пор пока не поймет, мог ли он сам случайно изменить массив. Он считает, что мог случайно изменить массив a, только если массив a можно отсортировать за не больше чем одну операцию обмена элементов массива (не обязательно соседних). То есть Маленький Слоник мог случайно поменять местами два каких-то элемента массива.

Помогите Маленькому Слонику, определите, мог ли он сам случайно изменить отсортированный по неубыванию массив a.

Входные данные

В первой строке задано единственное целое число n (2 ≤ n ≤ 105) — размер массива a. В следующей строке заданы n целых положительных чисел, разделенных единичными пробелами и не превосходящих 109, — массив a.

Обратите внимание, что элементы массива не обязательно различные числа.

Выходные данные

В единственной строке выведите «YES» (без кавычек), если Маленький Слоник мог сам случайно изменить массив, и «NO» (без кавычек) в противоположном случае.

Примечание

В первом примере массив уже отсортирован, поэтому для его сортировки требуется 0 операций обмена, что не больше чем 1. Таким образом ответ «YES».

Во втором примере массив можно отсортировать, поменяв элементы 1 и 3 местами, поэтому для его сортировки требуется 1 операция обмена. Таким образом ответ «YES».

В третьем примере массив нельзя отсортировать за не более чем одну операцию обмена, поэтому ответ «NO».


Примеры
Входные данныеВыходные данные
1 2
1 2
YES
2 3
3 2 1
YES
3 4
4 3 2 1
NO

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

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