连锁插入
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
连锁插入
题目描述
给定一个由 列组成的消息板,每一列最多可以容纳 条消息。 每一列中的消息按照从上到下的顺序排列。
初始时,消息板为空。任意时刻,每一列中的消息都会连续占据该列最上方的若干位置,不会出现空位夹在消息之间的情况。
接下来有 条消息依次到来。第 条到来的消息编号为 ,并且它会先被插入到第 列。
一次插入按如下规则进行:
- 新消息被放入该列的最上方;
- 该列原有的所有消息整体向下移动一格;
- 如果该列的消息数量因此超过 ,那么最下方的那条消息会被挤出,并立即作为“新消息”插入到下一列的最上方;
- 如果某条消息从第 列被挤出,则这条消息直接消失。
对于每一条到来的消息,必须先完整处理它引发的所有连锁插入,再开始处理下一条消息。
请输出所有操作结束后消息板的最终状态。空位置用 0 表示。
输入格式
第一行包含三个整数 ()。
接下来输入 个整数 (),其中 表示第 条消息初始插入的列号。
输出格式
输出 行。
对于每一行 (),输出 个整数。
第 个整数表示最终状态下第 列中从上到下第 个位置的消息编号。
如果该位置为空,则输出 0。
输入输出样例 #1
输入 #1
4 2 6
2 2 1 2 4 2
输出 #1
3 6 2 5
0 4 1 0
输入输出样例 #2
输入 #2
3 1 4
1 1 1 1
输出 #2
4 3 2
说明/提示
样例 2:
- 消息 插入,第 列变为
1; - 消息 插入,第 列变为
2,1被挤到第 列; - 消息 插入,第 列变为
3,2被挤到第 列,1被挤到第 列; - 消息 插入第 列后,
3被挤到第 列;随后第 列溢出,2被挤到第 列;随后第 列也溢出,1被挤出消息板并直接消失。
最终各列从上到下分别为 4、3、2。