Problem:
すごろくと駒 (Sugoroku and Pieces)

問題文

JOI 君はすごろくを持っている．このすごろくは 2019 個のマスが横一列に並んだ形をしている．これらのマスには，左端のスタートマスから右端のゴールマスへと順に 1 から 2019 までの番号がついている．

現在このすごろくの上には，N 個の駒が置かれている．これらの駒には，スタートに近い順に 1 から N までの番号がついている．駒 i (1 ≦ i ≦ N) は，マス X_i に置かれている．すべての駒は異なるマスに置かれている．

JOI 君はこれから M 回の操作を行う．j 回目 (1 ≦ j ≦ M) の操作では，駒 A_j を 1 マス先へ進める．ただし，移動元のマスがゴールマスであった場合，もしくは移動先のマスに別の駒が置かれている場合，駒 A_j は進まず，位置は変わらない．

すべての操作が終了した時点で，各駒が置かれているマスを求めよ．

制約

1 ≦ N ≦ 100

1 ≦ X_1 < X_2 < ... < X_N ≦ 2019

1 ≦ M ≦ 100

1 ≦ A_j ≦ N (1 ≦ j ≦ M)

入力・出力

入力

入力は以下の形式で標準入力から与えられる．

N

X_1 X_2 ... X_N

M

A_1 A_2 ... A_M

出力

N 行出力せよ．i 行目 (1 ≦ i ≦ N) には，すべての操作が終了した時点で駒 i が置かれているマスの番号を出力せよ．

入出力例

入力例 1

3
2 3 6
2
1 3

出力例 1

2
3
7

1 回目の操作では，駒 1 をマス 2 からマス 3 へと進めようする．しかし，駒 2 がすでにマス 3 に置かれているため，駒 1 は進まない．

2 回目の操作では，駒 3 をマス 6 からマス 7 へと進める．

すべての操作が終了した時点で，駒 1 はマス 2 に，駒 2 はマス 3 に，駒 3 はマス 7 に置かれている．

入力例 2

2
1 2016
4
2 2 2 2

出力例 2

1
2019

3 回目の操作が完了した時点で，駒 2 はマス 2019 に置かれている．そのため，4 回目の操作では駒 2 は進まない．

入力例 3

4
1001 1002 1003 1004
7
1 2 3 4 3 2 1

出力例 3

1002
1003
1004
1005

情報オリンピック日本委員会作 『第 18 回日本情報オリンピック JOI 2018/2019 予選競技課題』

Solution in JAVA (judge verdict: Accepted)

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Main {

	public static void main(String[] args) {
		try (Scanner sc = new Scanner(System.in)){
			int num = sc.nextInt();
			List<Integer> pieces = new ArrayList<Integer>();
			for (int i=0; i<num; i++) pieces.add(sc.nextInt());
			int times = sc.nextInt();
			for (int i=0; i<times; i++) {
				int call = sc.nextInt()-1;
				int now = pieces.get(call);
				if ((now!=2019) && (!pieces.contains(now + 1))) {
					pieces.set(call, now+1);
				}
			}
			for (int i=0; i<num; i++) {
				System.out.println(pieces.get(i));
			}
		}
	}
}