#344. [R55D]卡牌游戏
[R55D]卡牌游戏
时空限制
2S/512M
题目描述
你正在玩一种单人扑克牌消除游戏。你手头上有一叠共 张扑克牌,从上到下第 张牌上写着一个数字 。同时,游戏设定了一个消除数字 。
游戏从第 回合进行到第 回合。在第 回合,你会从这叠牌的顶端抽出一张牌(即数字为 的牌),并根据以下规则进行操作:
- 放置:检查当前桌面上摆放的牌中,是否已经有数字为 的牌。如果没有,你就把手里刚抽出的这张牌(带着它的原始初始序号 )摆放到桌面所有牌的最右侧。
- 消除:如果当前桌面上已经存在数字为 的牌,那么手里刚抽出的这张牌将作为“触发器”直接丢弃,不放入桌面,并且立即触发一次消除操作: 在桌面上找到那张数字相同的牌,从它的位置开始,向右边(即最新放置的牌的方向)连续拿走 张牌。如果从这张牌算起,它及它右边的牌总数不足 张,就把它们全部拿走。拿走之后,桌面上如果右侧还有剩余的牌,它们会向左平移靠拢,填补空缺,保持原本的先后顺序。
请你计算并输出:原牌堆里的这 张牌,分别是在哪一个回合(即因为抽取第几张牌触发了消除)被拿走消除的?
注:如果某张牌仅仅作为“触发器”被直接丢弃而未曾摆上桌面或没被消除,对应输出 0。
格式
输入格式
第一行包含两个整数 和 ,分别表示牌的总数和每次触发消除操作时最多拿走的牌数。 第二行包含 个整数 ,表示这叠牌从上到下的数字序列。
输出格式
输出一行 个整数,以空格隔开。其中第 个整数表示原本牌堆中的第 张牌被消除的回合数(即触发它被拿走时的回合 )。若未被消除,则输出 0。
样例
样例输入 #1
5 2
3 1 2 1 4
样例输出 #1
0 4 4 0 0
样例输入 #2
7 3
1 2 3 2 3 7 1
样例输出 #2
7 4 4 0 7 7 0
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 | 分数 | 特殊性质 | |
|---|---|---|---|
| 无 | |||
| 无 |
对于 的数据,,。
Related
In following contests: