#4135. 一维棋子(1DPawn)
一维棋子(1DPawn)
题目描述
有个方格,从左到右排成一行,编号为方格、方格、...、方格。同时,有个棋子。从左数第个棋子最初放在方格上。现在,我们将对它们进行次操作。第次操作如下:
- 如果从左数第个棋子在最右边的方格上,则不做任何操作。
- 否则,如果从左数第个棋子右边相邻的方格上没有棋子,则将该棋子向右移动一格;如果有棋子,则不做任何操作。
请输出次操作结束后,从左到右每个棋子所在的方格编号。
输入格式
输入按以下格式从标准输入给出:
输出格式
输出一行,包含个整数,用空格分隔。第个整数应该是次操作结束后从左数第个棋子所在的方格编号。
样例
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上。操作过程如下:
-
从左数第3个棋子在方格4上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第3个棋子移到方格5。现在棋子在方格1、3和5上。
-
从左数第3个棋子在方格5上。这是最右边的方格,所以不做任何操作。棋子仍在方格1、3和5上。
-
从左数第1个棋子在方格1上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第1个棋子移到方格2。现在棋子在方格2、3和5上。
-
从左数第1个棋子在方格2上。这不是最右边的方格,但右边相邻的方格(方格3)有棋子,所以不做任何操作。棋子仍在方格2、3和5上。
-
从左数第2个棋子在方格3上。这不是最右边的方格,右边相邻的方格没有棋子,所以将第2个棋子移到方格4。现在棋子在方格2、4和5上。
因此,Q次操作结束后,棋子在方格2、4和5上,所以应该按此顺序输出2、4和5,中间用空格分隔。
数据范围
所有输入均为整数。
来源
- AtCoder ABC257B