#4283. K交换(K Swap)

K交换(K Swap)

题目描述

有一个长度为NN的序列A=(a1,...,aN)A=(a_1,...,a_N)。此外,给定一个整数KK
你可以执行以下操作零次或多次:

  • 选择一个满足1iNK1 ≤ i ≤ N-K的整数i,然后交换aia_iai+Ka_{i+K}的值。

判断是否可以将AA排序成升序。

输入格式

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

NN KK

a1a_1 ... aNa_N

输出格式

如果可以将AA排序成升序,输出Yes;否则,输出No

样例

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

样例解释

【样例1说明】
可以通过以下操作序列将AA排序成升序:

  1. 选择i=1i=1交换a1a_1a3a_3的值。序列变为(1,4,3,3,4)。

  2. 选择i=2i=2交换a2a_2a4a_4的值。序列变为(1,3,3,4,4)。

【样例3说明】
可能不需要进行任何操作。

数据范围

  • 2N2×1052 ≤ N ≤ 2 × 10^5
  • 1KN11 ≤ K ≤ N-1
  • 1ai1091 ≤ a_i ≤ 10^9
  • 所有输入均为整数。

来源

  • AtCoder ABC254C