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; }