COCI 2012/2013 - Contest 5<br>2013.03.09 모의테스트5- 숫자 돌리기 (ROTIRAJ) > 문제은행 : 정보올림피아드&알고리즘




1653 : 숫자 돌리기 (ROTIRAJ)

제한시간
1000 ms   
메모리제한
32 MB   
해결횟수
5 회   
시도횟수
40 회   

문제

미르코와 슬라브코가 "숫자 돌리기"라는 게임을 하고 있다. 

먼저, 미르코가 길이 N인 수열을 생각한 후 K개씩 수를 묶는다. (단, K는 N의 약수) 

 

그런 후, 슬라브코는 미르코에게 다음 둘 중 하나의 명령을 내린다.


1) 각 수 묶음에 대해 왼쪽 또는 오른쪽으로 X회 회전한다.

2) 수열 전체를 왼쪽 또는 오른쪽으로 X회 회전한다. 이 명령을 따른 후, 미르코는 K개씩 수를 새롭게 묶는다.

 


처음에 미르코가 생각한 수열이 (1, 2, 3, 4, 5, 6)이고 N=6, K=3인 경우, 처음에는 (1, 2, 3) / (4, 5, 6)으로 수를 묶게 된다.

슬라브코가 각 수 묶음에 대해 왼쪽으로 2회 회전하라고 명령하면, 미르코의 수열은 (3, 1, 2) / (6, 4, 5)가 된다.

그 후, 슬라브코가 수열 전체를 오른쪽으로 2회 회전하라고 명령하면, 

미르코의 수열은 4, 5, 3, 1, 2, 6이 되고, (4, 5, 3) / (1, 2, 6)으로 수를 새롭게 묶게 된다.


슬라브코가 몇 번의 명령을 내린 후, 미르코는 회전한 후의 수열의 상태를 말한다. 

그러면 슬라브코는 미르코가 처음 생각한 수열을 맞춰야 한다. 

 

슬라브코를 도와 처음 생각한 수열을 맞추는 프로그램을 작성하여라.


입력형식

첫 번째 줄에는 수열의 길이 N, 묶는 수의 개수 K, 슬라브코가 명령한 횟수 Q가 주어진다. (1 ≤ N, K, Q ≤ 100,000)

두 번째 줄부터 Q개의 줄에는 명령의 종류 A (1 ≤ A ≤ 2)와 회전의 수 X (-100,000 ≤ X ≤ 100,000)가 주어진다. 

X가 음수이면, 왼쪽으로 |X|회 회전하라는 것이고, X가 양수이면 오른쪽으로 X회 회전하라는 것이다. 

마지막 줄에는 회전한 후의 미르코의 수열 Z[i]이 주어진다. ( 0 <= Z[i] <= 100,000)


출력형식

미르코가 처음 생각한 수열을 출력한다.


입력 예

4 2 2
2 2
1 1
3 2 1 0

출력 예

0 1 2 3

입력 예

8 4 4
1 3
1 15
1 -5
2 -1
6 10 14 19 2 16 17 1

출력 예

6 10 14 1 2 16 17 19


경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호

TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com

Copyrightⓒ 2010 jungol. All right reserved.

TOP