#4135. 一维棋子(1DPawn)

一维棋子(1DPawn)

题目描述

NN个方格,从左到右排成一行,编号为方格11、方格22、...、方格NN。同时,有KK个棋子。从左数第ii个棋子最初放在方格AiA_i上。现在,我们将对它们进行QQ次操作。第ii次操作如下:

  • 如果从左数第LiL_i个棋子在最右边的方格上,则不做任何操作。
  • 否则,如果从左数第LiL_i个棋子右边相邻的方格上没有棋子,则将该棋子向右移动一格;如果有棋子,则不做任何操作。

请输出QQ次操作结束后,从左到右每个棋子所在的方格编号。

输入格式

输入按以下格式从标准输入给出:
NN KK QQ
A1A_1 A2A_2 \cdots AKA_K
L1L_1 L2L_2 \cdots LQL_Q

输出格式

输出一行,包含KK个整数,用空格分隔。第ii个整数应该是QQ次操作结束后从左数第ii个棋子所在的方格编号。

样例

5 3 5
1 3 4
3 3 1 1 2
2 4 5
2 2 2
1 2
1 2
1 2
10 6 9
1 3 5 7 8 9
1 2 3 4 5 6 5 6 2
2 5 6 7 9 10

样例1解释

最初,棋子在方格1、3和4上。操作过程如下:

  1. 从左数第3个棋子在方格4上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第3个棋子移到方格5。现在棋子在方格1、3和5上。

  2. 从左数第3个棋子在方格5上。这是最右边的方格,所以不做任何操作。棋子仍在方格1、3和5上。

  3. 从左数第1个棋子在方格1上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第1个棋子移到方格2。现在棋子在方格2、3和5上。

  4. 从左数第1个棋子在方格2上。这不是最右边的方格,但右边相邻的方格(方格3)有棋子,所以不做任何操作。棋子仍在方格2、3和5上。

  5. 从左数第2个棋子在方格3上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第2个棋子移到方格4。现在棋子在方格2、4和5上。
    因此,Q次操作结束后,棋子在方格2、4和5上,所以应该按此顺序输出2、4和5,中间用空格分隔。

数据范围

  • 1KN2001 ≤ K ≤ N ≤ 200
  • 1A1<A2<...<AKN1 ≤ A_1 < A_2 < ... < A_K ≤ N
  • 1Q10001 ≤ Q ≤ 1000
  • 1LiK1 ≤ L_i ≤ K

所有输入均为整数。

来源

  • AtCoder ABC257B