#joi2016yob. [joi2016yo_b]ゼッケンの交換 (Swapping Bibs)
[joi2016yo_b]ゼッケンの交換 (Swapping Bibs)
問題
JOI 高校の 人の生徒が東西に一列に並んでいる.列の西の端から 番目の生徒が生徒 である.それぞれの生徒は整数が つ書かれたゼッケンを付けている.最初,生徒 のゼッケンには整数 が書かれている.
バトンが 個あり,バトンには から までの番号が付けられている. に対し,以下の操作を行う.バトン () に関する操作は,バトン に関する操作が終わってから行う.
- 先生がバトン を生徒 に渡す.
- バトンを受け取った生徒は,以下のルールに従ってバトンを渡す.
- ルール:生徒 がバトン を受け取ったとする.
- のとき: 生徒 のゼッケンの整数を で割った余りが,生徒 のゼッケンの整数を で割った余りよりも大きいとき,生徒 と生徒 がゼッケンを交換し,生徒 は生徒 にバトンを渡す.そうでないときは,ゼッケンを交換せずに,生徒 は生徒 にバトンを渡す.
- のとき: 生徒 はバトンを先生に渡す.
- ルール:生徒 がバトン を受け取ったとする.
- 先生が生徒 からバトン を受け取ったら,バトン に関する操作は終わりである.
生徒のゼッケンに最初に書かれていた整数とバトンの個数 が与えられたとき,先生が生徒 からバトン を受け取った後の,それぞれの生徒のゼッケンの整数を求めるプログラムを作成せよ.
入力
入力は 行からなる.
行目には整数 (,) が空白を区切りとして書かれており,それぞれ生徒の人数とバトンの個数を表す.
続く 行のうちの 行目 () には整数 () が書かれており,生徒 のゼッケンに最初に書かれている整数 を表す.
出力
出力は 行からなる. 行目 () には,先生が生徒 からバトン を受け取った後の,生徒 のゼッケンの整数を出力せよ.
入力例 1
6 4
3
2
8
3
1
5
出力例 1
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