등번호판 교환
- 시간 제한
- 2s
- 메모리 제한
- 256MB
- 제출
- 0
- 정답
- 0
- 맞힌 사람
- 0
- 정답 비율
- 0.0%
문제
JOI 고등학교의 N 명의 학생이 동서 방향으로 한 줄로 서 있다. 줄의 서쪽 끝에서 i 번째 학생이 학생 i 이다. 각 학생은 정수가 하나 쓰인 등번호판을 달고 있다. 처음에 학생 i 의 등번호판에는 정수 가 쓰여 있다.
바통이 M 개 있고, 바통에는 1 부터 M 까지의 번호가 붙어 있다. k = 1, 2, ..., M 에 대해 다음 조작을 수행한다. 바통 k (2 ≦ k ≦ M) 에 관한 조작은 바통 k - 1 에 관한 조작이 끝난 뒤에 수행한다.
- 선생님이 바통 k 를 학생 1 에게 건넨다.
- 바통을 받은 학생은 다음 규칙에 따라 바통을 건넨다.
- 규칙: 학생 i 가 바통 k 를 받았다고 하자.
- 1 ≦ i ≦ N - 1 일 때: 학생 i 의 등번호판의 정수를 k 로 나눈 나머지가 학생 i + 1 의 등번호판의 정수를 k 로 나눈 나머지보다 클 때, 학생 i 와 학생 i + 1 이 등번호판을 교환하고, 학생 i 는 학생 i + 1 에게 바통을 건넨다. 그렇지 않을 때는 등번호판을 교환하지 않고, 학생 i 는 학생 i + 1 에게 바통을 건넨다.
- i = N 일 때: 학생 N 은 선생님에게 바통을 건넨다.
- 선생님이 학생 N 에게서 바통 k 를 받으면, 바통 k 에 관한 조작은 끝난다.
학생의 등번호판에 처음에 쓰여 있던 정수와 바통의 개수 M 이 주어졌을 때, 선생님이 학생 N 에게서 바통 M 을 받은 후의 각 학생의 등번호판의 정수를 구하는 프로그램을 작성하시오.
입력
입력은 1 + N 줄로 이루어진다.
1 번째 줄에는 정수 N, M (1 ≦ N ≦ 100, 1 ≦ M ≦ 100) 이 공백으로 구분되어 쓰여 있으며, 각각 학생의 수와 바통의 개수를 나타낸다.
이어지는 N 줄 중 i 번째 줄 (1 ≦ i ≦ N) 에는 정수 (1 ≦ ≦ 1000) 가 쓰여 있으며, 학생 i 의 등번호판에 처음에 쓰여 있는 정수 를 나타낸다.
출력
출력은 N 줄로 이루어진다. i 번째 줄 (1 ≦ i ≦ N) 에는 선생님이 학생 N 에게서 바통 M 을 받은 후의 학생 i 의 등번호판의 정수를 출력한다.
예제 입력 1
6 4
3
2
8
3
1
5
예제 출력 1
2
3
1
8
5
3
예제 1 에서는 6 명의 학생이 있다. 처음에 학생들의 등번호판은 순서대로 3, 2, 8, 3, 1, 5 이다. 바통은 4 개 있다.
- 바통 1 에 관한 조작이 끝난 시점에서 학생들의 등번호판은 순서대로 3, 2, 8, 3, 1, 5 이다.
- 바통 2 에 관한 조작이 끝난 시점에서 학생들의 등번호판은 순서대로 2, 8, 3, 3, 1, 5 이다.
- 바통 3 에 관한 조작이 끝난 시점에서 학생들의 등번호판은 순서대로 2, 3, 3, 1, 8, 5 이다.
- 바통 4 에 관한 조작이 끝난 시점에서 학생들의 등번호판은 순서대로 2, 3, 1, 8, 5, 3 이다.
예제 입력 2
10 6
1
2
3
4
5
6
7
8
9
10
예제 출력 2
6
1
2
3
10
4
8
7
9
5
코드를 제출하려면 로그인이 필요합니다.
로그인제출 내역이 없습니다.
아직 맞은 사람이 없습니다.
제출 내역이 없습니다.