#2107. 卡片
卡片
当前没有测试数据。
题目描述
翁老师 有一副由 张扑克牌,每张牌上面写着一个整数。从最上面开始的第 张牌上的整数是 , 是一个 的排列。
使用这副扑克牌,将扑克牌分成若干堆,初始还没有开始分牌即堆数为 。你要操作 个步骤:
- 每次抽出第 张牌。若第 张牌的数字 大于目前所有牌堆最顶部的牌。那么将第 张牌新放到一堆,目前这一堆只有第 张牌。
- 否则在所有堆顶的排,找到恰好大于 的那一张,将第 张牌放到这个堆的堆顶。
- 如果某一堆恰好有 张牌,就把这 张牌全部拿走,并且记录每一张牌的拿走时刻 。
最后输出每张牌被拿走的时刻,若没有被拿走就输出 -1
。
输入格式
第一行输入两个整数
第二行输入 个空格隔开的整数代表
输出格式
输出一共输出 行,输出每张牌被拿走的时刻,若没被拿走则输出 -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 解释
- 第一次没有任何一堆牌,因此第 张牌直接放到第一堆。
3
- 第二次的牌是 ,它比第一堆的堆顶大,因此新加了一堆,把第二张牌放了过去。
3 5
- 第三次的牌是 ,恰好大于它的牌是第一堆的堆顶 ,因此将 放了上去。
2
3 5
此时第一堆恰好有两张牌,因此将它们拿走,并记录拿走的时刻均为 。记录 。其中 代表写有数字 的牌被拿走的时刻。
由于第一堆消失,第二堆的牌 成为了第一堆。
- 第四次的牌是 ,恰好大于它的牌是第一堆的堆顶 ,因此将 放了上去。
1
5
此时第一堆恰好有两张牌,因此将它们拿走,并记录拿走的时刻均为 。记录 。其中 代表写有数字 的牌被拿走的时刻。
此时桌面上没有任何一堆牌。
- 最后拿来了第 张牌,写有数字 ,将它放到第一堆,此时第一堆只有 自己。且它不会被拿走。因此
因此 ,所以输出是 4 3 3 -1 4
提示
- 是 的排列。