아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

윈도 XOR

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

요약
각 원소를 원형으로 이어진 K개 연속 원소의 XOR로 바꾸는 변환을 T번 적용한 결과를 구한다. T는 10^18까지 커질 수 있다.
난이도

어려움10점 중 9점

유형
수학, 비트 연산, 조합론, 정수론
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 XX가 주어진다. 11 이상 NN 이하의 정수 KK가 주어질 때, XX를 한 번 변환하면 수열의 각 값은 다음과 같이 바뀐다. X′X'은 변환된 이후의 수열이며, ⊕\oplus는 Bitwise-XOR 연산이다.

X1′=X1⊕X2⊕⋯⊕XKX'_1 = X_1 \oplus X_2 \oplus \cdots \oplus X_K X2′=X2⊕X3⊕⋯⊕XK+1X'_2 = X_2 \oplus X_3 \oplus \cdots \oplus X_{K+1} ⋮\vdots XN−K+1′=XN−K+1⊕XN−K+2⊕⋯⊕XN−1⊕XNX'_{N-K+1} = X_{N-K+1} \oplus X_{N-K+2} \oplus \cdots \oplus X_{N-1} \oplus X_N XN−K+2′=XN−K+2⊕XN−K+3⊕⋯⊕XN⊕X1X'_{N-K+2} = X_{N-K+2} \oplus X_{N-K+3} \oplus \cdots \oplus X_{N} \oplus X_1 ⋮\vdots XN−1′=XN−1⊕XN⊕⋯⊕XK−3⊕XK−2X'_{N-1} = X_{N-1} \oplus X_N \oplus \cdots \oplus X_{K-3} \oplus X_{K-2} XN′=XN⊕X1⊕⋯⊕XK−2⊕XK−1X'_{N} = X_{N} \oplus X_1 \oplus \cdots \oplus X_{K-2} \oplus X_{K-1}

조금 더 편하게 표현하자면, Xi+N=XiX_{i+N} = X_i으로 봤을 때, Xi′=Xi⊕⋯⊕Xi+K−1X'_i = X_i \oplus \cdots \oplus X_{i+K-1}인 것이다.

수열 XX와 KK가 주어질 때, 수열 XX를 TT번 변환한 수열을 구하는 프로그램을 작성하라.

입력

첫 번째 줄에 세 정수 NN, KK, TT(1≤K≤N≤1051 ≤ K ≤ N ≤ 10^5, 1≤T≤10181 ≤ T ≤ 10^{18})가 공백 하나로 구분되어 주어진다.

두 번째 줄에는 NN개의 정수 X1,X2,⋯ ,XNX_1, X_2, \cdots , X_N(0≤Xi≤1090 ≤ X_i ≤ 10^9)이 공백 하나로 구분되어 주어진다.

출력

주어진 XX를 TT번 변환한 수열을 AA라고 할 때, 첫 번째 줄에 A1A_1에서 ANA_N까지의 NN개의 정수를 공백 하나로 구분하여 순서대로 출력한다.

예제5

  1. 예제 1

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

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

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

    입력
    5 3 15
    3 0 2 1 2
    
    예상 출력
    3 0 2 1 2
    
  5. 예제 5

    입력
    11 5 1000000000000000000
    2 2 4 5 9 1 5 7 7 1 8
    
    예상 출력
    13 4 5 8 1 0 5 10 3 4 8