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

hamayanhamayan's blog

すごろくと駒 (Sugoroku and Pieces) [第18回日本情報オリンピック 予選 B]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/JOI/Prelim/0653?year=2019

解説

https://onlinejudge.u-aizu.ac.jp/status/users/hamayanhamayan/submissions/1/0653/judge/3757737/C++14

シミュレーションで解こう。
駒は追い越すことは無いので、位置が変わらないかどうかを判定するには次の駒との位置関係をチェックする。 最後の駒であれば、2019の境界をチェックする。

int N, X[101], M, A[101];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> X[i];
    cin >> M;
    rep(i, 0, M) cin >> A[i];

    rep(i, 0, M) {
        int a = A[i] - 1;
        if (a == N - 1) {
            if (X[a] < 2019) X[a]++;
        }
        else {
            if (X[a] + 1 < X[a + 1]) X[a]++;
        }
    }

    rep(i, 0, N) cout << X[i] << endl;
}