はまやんはまやんはまやん

hamayanhamayan's blog

ゼッケンの交換 (Swapping Bibs) [第15回日本情報オリンピック 予選(オンライン) B]

https://atcoder.jp/contests/joi2016yo/tasks/joi2016yo_b

解説

https://atcoder.jp/contests/joi2016yo/submissions/8343032

操作は複雑だがN,Mのサイズは小さい。
全ての操作回数を考えるとNM回くらいなので、シミュレーションしても間に合う。
シミュレーションしよう。
交換はswap関数を使うと自然に書ける。

int N, M, A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> M;
    rep(i, 0, N) cin >> A[i];
    rep(k, 1, M + 1) rep(i, 0, N - 1) if (A[i] % k > A[i + 1] % k) swap(A[i], A[i + 1]);
    rep(i, 0, N) cout << A[i] << endl;
}