만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

K-정렬

시간 제한1.5초메모리 제한1024 MB

요약
순열과 정수 K가 주어질 때, 원형으로 K칸 떨어진 원소끼리 교환해서 오름차순으로 정렬할 수 있는지 판별합니다.
난이도

보통10점 중 4점

유형
정수론, 배열
정답자
아직 제출이 없습니다

문제

길이 NN의 순열 A=[A0,A1,…,AN−1]A=[A_0, A_1, \dots, A_{N-1}]이 주어진다. 길이 NN의 순열은 00부터 N−1N-1까지의 모든 정수가 정확히 한 번씩 등장하는 수열이다.

양의 정수 KK가 주어진다. 다음 연산을 원하는 만큼 수행할 수 있다.

  • 임의의 ii (0≤i<N0 \leq i < N)에 대해 AiA_i와 A(i+K) mod NA_{(i+K) \bmod N}의 값을 바꾼다.

이 연산으로 AA를 오름차순으로 정렬할 수 있는지 확인하라.  mod \bmod 연산에 대한 설명은 힌트를 참고하라.

입력

첫 번째 줄에 순열의 길이 NN과 양의 정수 KK가 공백으로 구분되어 주어진다. (1≤K≤N≤1061 \leq K \leq N \leq 10^{6})

두 번째 줄에 순열 AA의 원소 A0,A1,…,AN−1A_0, A_1, \dots, A_{N-1}이 공백으로 구분되어 주어진다. 각 정수는 00부터 N−1N-1까지 정확히 한 번씩 주어진다.

출력

연산을 원하는 만큼 반복하여 AA를 오름차순으로 정렬할 수 있으면 YES, 그렇지 않으면 NO를 출력한다.

힌트

 mod \bmod는 나머지 연산이다. a mod ba \bmod b는 aa를 bb로 나눈 나머지를 뜻한다. 예를 들어, 5 mod 3=25 \bmod 3 = 2이다.

예제2

  1. 예제 1

    입력
    6 2
    2 3 4 1 0 5
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    4 2
    0 1 3 2
    
    예상 출력
    NO