11805. Поміняти місцями
Відправити розв'язок
Бали:
100
Time limit:
2.0s
Memory limit:
500M
Author:
Problem type
Allowed languages
C++, Java, Pascal, Python
Маємо послідовність довжини \(N\): \(A=(a_1,\ldots,a_N)\). Крім того, вам надається ціле число \(K\). Ви можете виконати наступну операцію нуль або більше разів.
- Виберіть ціле число \(i\) таке, що \(1 \leq i \leq N-K\), а потім поміняйте місцями значення \(a_i\) i \(a_{i+K}\).
Визначте, чи можна відсортувати \(А\) за зростанням.
Обмеження
- \(2 \leq N \leq 2 \times 10^5\)
- \(1 \leq K \leq N-1\)
- \(1 \leq a_i \leq 10^9\)
- Усі значення у вхідних даних є цілими числами.
Формат вхідних даних
Перший рядок містить цілі числа \(N,K\)
Наступний рядок містить \(N\) цілих чисел \(a_i\)
Числа у рядках розділяються пропуском.
Формат вихідних даних
У вихідний потік вивести \(Yes\) або \(No\) - відповідь на поставлене завдання
Примітка
До прикладу 1:
Наступна послідовність операцій сортує \(A\) у порядку зростання.
- Виберіть \(i=1\), щоб поміняти значення \(a_1\) і \(a_3\). \(A\) тепер (1,4,3,3,4).
- Виберіть \(i=2\), щоб поміняти значення \(a_2\) і \(a_4\). \(A\) тепер (1,3,3,4,4).
Приклад вхідних даних
5 2
3 4 1 3 4
Приклад вихідних даних
Yes
Приклад вхідних даних
5 3
3 4 1 3 4
Приклад вихідних даних
No
Приклад вхідних даних
7 5
1 2 3 4 5 5 10
Приклад вихідних даних
Yes
Коментарі