#AT2240. D - Draw Your Cards
D - Draw Your Cards
当前没有测试数据。
D - 挑牌
得分:400分
问题描述
一副由$N$张面朝下的牌组成的牌堆,上面写着$1$到$N$的整数。第$i$张牌上的整数是$P_i$。
使用这副牌,你将进行$N$次操作,每次操作由以下步骤组成:
- 从牌堆中抽取最上面的一张牌。将上面的整数记为$X$。
- 将抽取到的牌,面朝上,叠到桌上已经面朝上,上面的整数不小于$X$的牌上。如果桌上没有这样的牌,将抽取到的牌直接放到桌上,面朝上,不叠到任何牌上。
- 然后,如果桌上存在一叠有$K$张面朝上的牌,把这些牌都吃掉。被吃掉的牌都会从桌上消失。
对于每张牌,找出它是哪次操作吃掉的。如果到最后一张牌都没有被吃掉,报告这个事实。
约束条件
- 所有输入的值都是整数。
- $1 \le K \le N \le 2 \times 10^5$
- $P$是$(1,2,\dots,N)$的一个排列(即由$(1,2,\dots,N)$重新排列而得的一个序列)。
输入
输入通过标准输入给出,具体格式如下:
输出
输出共$N$行。
第$i$行($1 \le i \le N$)应描述整数$i$所在的牌。具体要求为:
- 如果整数为$i$的牌是在第$x$次操作中被吃掉的,输出$x$;
- 如果该牌在任何一次操作中都未被吃掉,输出$-1$。
5 2
3 5 2 1 4
4
3
3
-1
4
在这个输入中,$P=(3,5,2,1,4)$,$K=2$。
- 在第$1$次操作中,数字为$3$的牌直接放到桌上,面朝上,不叠到任何牌上。
- 在第$2$次操作中,数字为$5$的牌直接放到桌上,面朝上,不叠到任何牌上。
- 在第$3$次操作中,数字为$2$的牌放在数字为$3$的牌上面,面朝上。
- 现在,桌上有一叠有$K=2$张面朝上的牌,上面的数字分别为$2$和$3$,这两张牌都被吃掉。
- 在第$4$次操作中,数字为$1$的牌放在数字为$5$的牌上面,面朝上。
- 现在,桌上有一叠有$K=2$张面朝上的牌,上面的数字分别为$1$和$5$,这两张牌都被吃掉。
- 在第$5$次操作中,数字为$4$的牌直接放到桌上,面朝上,不叠到任何牌上。
- 数字为$4$的牌直到最后也未被吃掉。
5 1
1 2 3 4 5
1
2
3
4
5
如果$K=1$,每张牌都在放到桌上的时候立即被吃掉。
15 3
3 14 15 9 2 6 5 13 1 7 10 11 8 12 4
9
9
9
15
15
6
-1
-1
6
-1
-1
-1
-1
6
15