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

Коментарі

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