문제
정올사립학교는 연대 책임을 강조하는 것으로 유명하다. 학생 한 명이 잘못을 하면, N명의 학생 전원이 다음과 같은 식으로 기합을 받는다.
1. 기합이 시작하면, N명의 학생들이 운동장에 모여서 한 줄로 서 있는다. 처음에 각 학생들의 번호는 앞에서부터 1번이다.
2. 구령대에서 교장 선생님이 “p q”를 힘차게 외치면, 앞에서부터 p번째 학생부터 시작해서, 그 학생을 포함하여 뒤로 q명의 학생들이 맨 앞 으로 이동한다.
이 때, 움직인 학생들끼리의 순서는 그대로 유지한다.
만약 p번째 학생을 포함, 그 뒤에 q명 미만의 학생들밖에 없다면, q명 미만의 학생들만 맨 앞으로 움직인다.
3. 교장 선생님이 힘차게 “0 0”을 외치면 기합을 종료한다.
기합을 종료하기 직전 앞쪽 학생부터 차례로 학생들의 번호를 출력하는 프로그램을 작성하라.
이 문제는 연결 리스트(Linked List)만 가지고 풀어보도록 하자.
입력
첫 줄에 학생의 수인 N이 주어진다.(1≤N≤10,000)
다음 줄부터 교장 선생님의 지시사항인 p q가 주어진다. (1≤p≤10,000 , 1≤q≤10,000)
지시사항의 총 수는 10,000개 이하이며, 맨 마지막에는 0 0이 주어진다.
출력
한 줄에, 앞에서부터 학생들의 번호를 공백을 사이에 두고 출력한다.
예제
10
4 2
5 2
6 6
0 0
2 7 8 9 10 3 6 4 5 1
출처
ohjtgood