#2107. 卡片

卡片

当前没有测试数据。

题目描述

翁老师 有一副由 nn 张扑克牌,每张牌上面写着一个整数。从最上面开始的第 ii 张牌上的整数是 pip_ipip_i 是一个 1n1\sim n 的排列。

使用这副扑克牌,将扑克牌分成若干堆,初始还没有开始分牌即堆数为 00。你要操作 nn 个步骤:

  • 每次抽出第 ii 张牌。若第 ii 张牌的数字 pip_i 大于目前所有牌堆最顶部的牌。那么将第 ii 张牌新放到一堆,目前这一堆只有第 ii 张牌。
  • 否则在所有堆顶的排,找到恰好大于 pip_i 的那一张,将第 ii 张牌放到这个堆的堆顶。
  • 如果某一堆恰好有 kk 张牌,就把这 kk 张牌全部拿走,并且记录每一张牌的拿走时刻 ii

最后输出每张牌被拿走的时刻,若没有被拿走就输出 -1

输入格式

第一行输入两个整数 n,kn,k

第二行输入 nn 个空格隔开的整数代表 p1,p2,,pnp_1,p_2,\cdots,p_n

输出格式

输出一共输出 nn 行,输出每张牌被拿走的时刻,若没被拿走则输出 -1

5 2
3 5 2 1 4
4
3 
3
-1
4
5 1
1 2 3 4 5
1
2
3
4
5
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

样例 1 解释

  • 第一次没有任何一堆牌,因此第 11 张牌直接放到第一堆。
3
  • 第二次的牌是 55,它比第一堆的堆顶大,因此新加了一堆,把第二张牌放了过去。
3 5
  • 第三次的牌是 22,恰好大于它的牌是第一堆的堆顶 33,因此将 22 放了上去。
2
3 5

此时第一堆恰好有两张牌,因此将它们拿走,并记录拿走的时刻均为 33。记录 t2=3,t3=3t_2=3,t_3=3。其中 tit_i 代表写有数字 ii 的牌被拿走的时刻。

由于第一堆消失,第二堆的牌 55 成为了第一堆。

  • 第四次的牌是 11,恰好大于它的牌是第一堆的堆顶 55,因此将 11 放了上去。
1
5

此时第一堆恰好有两张牌,因此将它们拿走,并记录拿走的时刻均为 44。记录 t1=4,t5=4t_1=4,t_5=4。其中 tit_i 代表写有数字 ii 的牌被拿走的时刻。

此时桌面上没有任何一堆牌。

  • 最后拿来了第 55 张牌,写有数字 44,将它放到第一堆,此时第一堆只有 44 自己。且它不会被拿走。因此 t4=1t_4=-1

因此 t1=4,t2=3,t3=3,t4=1,t5=4t_1=4,t_2=3,t_3=3,t_4=-1,t_5=4,所以输出是 4 3 3 -1 4

提示

  • 1kn2×1051 \le k \le n \le 2 \times 10^5
  • pp(1,2,,n)(1,2,\dots,n) 的排列。