Codeforces Round 136 (Div. 1) |
---|
Закончено |
У Маленького Слоника проблема — кто-то трогал его отсортированный по неубыванию массив a длины n и, возможно, поменял некоторые элементы этого массива местами.
Маленький Слоник не хочет звонить в полицию до тех пор пока не поймет, мог ли он сам случайно изменить массив. Он считает, что мог случайно изменить массив a, только если массив a можно отсортировать за не больше чем одну операцию обмена элементов массива (не обязательно соседних). То есть Маленький Слоник мог случайно поменять местами два каких-то элемента массива.
Помогите Маленькому Слонику, определите, мог ли он сам случайно изменить отсортированный по неубыванию массив a.
В первой строке задано единственное целое число n (2 ≤ n ≤ 105) — размер массива a. В следующей строке заданы n целых положительных чисел, разделенных единичными пробелами и не превосходящих 109, — массив a.
Обратите внимание, что элементы массива не обязательно различные числа.
В единственной строке выведите «YES» (без кавычек), если Маленький Слоник мог сам случайно изменить массив, и «NO» (без кавычек) в противоположном случае.
2
1 2
YES
3
3 2 1
YES
4
4 3 2 1
NO
В первом примере массив уже отсортирован, поэтому для его сортировки требуется 0 операций обмена, что не больше чем 1. Таким образом ответ «YES».
Во втором примере массив можно отсортировать, поменяв элементы 1 и 3 местами, поэтому для его сортировки требуется 1 операция обмена. Таким образом ответ «YES».
В третьем примере массив нельзя отсортировать за не более чем одну операцию обмена, поэтому ответ «NO».
Название |
---|