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 Ruby (judge verdict: Accepted)

map=[]
map[2020]=0
pieces=[]
gets
gets.split.map(&:to_i).each.with_index(1){|x,i|
  map[x]=i
  pieces[i]=x
}
gets
gets.split.map(&:to_i).each{|i|
  unless map[pieces[i]+1]
    map[pieces[i],2]=[nil,i]
    pieces[i]+=1
  end
}
puts pieces.drop(1)