숫자 돌리기 (ROTIRAJ) > 문제은행



실전대비 Level7

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






HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 031-388-0999 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.