atcoder#ABC254C. [ABC254C] K Swap

[ABC254C] K Swap

配点 : 300300

問題文

長さ NN の数列 A=(a1,,aN)A=(a_1,\ldots,a_N) があります。また、整数 KK が与えられます。

あなたは次の操作を 00 回以上何度でも行えます。

  • 1iNK1 \leq i \leq N-K を満たす整数 ii を選び、aia_iai+Ka_{i+K} の値を入れ替える。

AA を昇順に並べ替えることが出来るかどうかを判定してください。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1KN11 \leq K \leq N-1
  • 1ai1091 \leq a_i \leq 10^9
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN KK

a1a_1 \ldots aNa_N

出力

AA を昇順に並び替えることが出来るならば Yes と、出来ないならば No と出力せよ。

5 2
3 4 1 3 4
Yes

次のように操作をすることで AA を昇順に並び替えることが出来ます。

  • i=1i=1 とし、a1a_1a3a_3 の値を入れ替える。数列は (1,4,3,3,4)(1,4,3,3,4) となる。
  • i=2i=2 とし、a2a_2a4a_4 の値を入れ替える。数列は (1,3,3,4,4)(1,3,3,4,4) となる。
5 3
3 4 1 3 4
No
7 5
1 2 3 4 5 5 10
Yes

操作を行う必要が無い場合もあります。