#AT2191. C - K Swap

C - K Swap

当前没有测试数据。

C - K Swap

得分:300 分

问题描述

我们有一个长度为 $N$ 的序列:$A=(a_1,\ldots,a_N)$。此外,你还给出一个整数 $K$。

你可以执行以下操作零次或多次。

  • 选择一个整数 $i$,使得 $1 \leq i \leq N-K$,然后交换 $a_i$ 和 $a_{i+K}$ 的值。

判断能否按升序排序$A$。

约束

  • $2 \leq N \leq 2 \times 10^5$
  • $1 \leq K \leq N-1$
  • $1 \leq a_i \leq 10^9$
  • 输入中的所有值都是整数。

输入

输入从标准输入中以以下格式给出:

NN KK

a1a_1 \ldots aNa_N

输出

如果可以按升序排序$A$,则输出Yes;否则,输出No


5 2
3 4 1 3 4
Yes

以下操作序列将按升序排序$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 3
3 4 1 3 4
No

7 5
1 2 3 4 5 5 10
Yes

不需要任何操作。