시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 1024 MB | 17 | 11 | 10 | 76.923% |
길이가 $N$인 수열 $X$가 주어진다. $1$이상 $N$이하의 정수 $K$가 주어질 때, $X$를 한 번 변환하면 수열의 각 값은 다음과 같이 바뀐다. $X'$은 변환된 이후의 수열이며, $\oplus$는 Bitwise-XOR연산이다.
$$X'_1 = X_1 \oplus X_2 \oplus \cdots \oplus X_K$$ $$X'_2 = X_2 \oplus X_3 \oplus \cdots \oplus X_{K+1}$$ $$ \vdots $$ $$X'_{N-K+1} = X_{N-K+1} \oplus X_{N-K+2} \oplus \cdots \oplus X_{N-1} \oplus X_N$$ $$X'_{N-K+2} = X_{N-K+2} \oplus X_{N-K+3} \oplus \cdots \oplus X_{N} \oplus X_1$$ $$ \vdots $$ $$X'_{N-1} = X_{N-1} \oplus X_N \oplus \cdots \oplus X_{K-3} \oplus X_{K-2}$$ $$X'_{N} = X_{N} \oplus X_1 \oplus \cdots \oplus X_{K-2} \oplus X_{K-1}$$
조금 더 편하게 표현하자면, $X_{i+N} = X_i$으로 봤을 때, $X'_i = X_i \oplus \cdots \oplus X_{i+K-1}$인 것이다.
수열 $X$와 $K$가 주어질 때, 수열 $X$를 $T$번 변환한 수열을 구하는 프로그램을 작성하라.
첫 번째 줄에 세 정수 $N$, $K$, $T$($1 ≤ K ≤ N ≤ 10^5$, $1 ≤ T ≤ 10^{18}$)가 공백 하나로 구분되어 주어진다.
두 번째 줄에는 $N$개의 정수 $X_1, X_2, \cdots , X_N$($0 ≤ X_i ≤ 10^9$)이 공백 하나로 구분되어 주어진다.
주어진 $X$를 $T$번 변환한 수열을 $A$라고 할 때, 첫 번째 줄에 $A_1$에서 $A_N$까지의 $N$개의 정수를 공백 하나로 구분하여 순서대로 출력한다.
5 3 1 3 0 2 1 2
1 3 1 0 1
5 3 2 3 0 2 1 2
3 2 0 0 3
5 3 3 3 0 2 1 2
1 2 3 0 2
5 3 15 3 0 2 1 2
3 0 2 1 2
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
Camp > Petrozavodsk Programming Camp > Winter 2018 > Day 5: Grand Prix of Korea L번
Contest > kriiicon > 제5회 kriiicon WX번
Contest > Open Cup > 2017/2018 Season > Stage 10: Grand Prix of Korea L번