#LQ060. 小弱洗牌法
小弱洗牌法
题目描述
小弱 T 在闲暇的时候会和室友打扑克,输的人就要负责洗牌。虽然小弱 T 不怎么会洗牌,但他却总是输。
渐渐地,小弱 T 发现了一个规律:只要是自己洗的牌,自己就一定会输。因此他怀疑自己洗牌不够均匀,于是独创了一种“小弱洗牌法”。
洗牌法如下:
- 使用传统方法将 52 张扑克牌(不含大小王,牌面为
1~10
、J
、Q
、K
,共计 52 张,每种牌各 4 张)打乱,形成一叠牌堆; - 从牌堆顶依次取出每张牌:
- 若这张牌点数为 $P$(点数为:1~10 本身,J=11,Q=12,K=13),则将其插入到当前手牌的第 $P$ 张牌之后;
- 若当前手牌数不足 $P$ 张,则将其插入手牌末尾。
现在给出这个打乱后的牌堆,请模拟小弱洗牌法,输出洗完牌后的序列。
如果牌的总数不为 52,请输出 -1 提醒牌数不对。
输入格式
输入为若干行字符串,表示打乱后的牌堆,自顶向底排列。每张牌为 "1"
~ "10"
、"J"
、"Q"
、"K"
中的一个,用空格分隔。
输入中可能有换行。
输出格式
若牌数为 52,按小弱洗牌法输出处理后的牌序列,牌之间用空格分隔;
否则输出 -1
。
4 6 K Q 5 1 Q 9 7 9 K 3 J 1 2 3 5
2
3 5 7 Q 7 10 8 4 9 7 8 9 4
10 6 2 8 2 10 10 Q 5 K J 1
J 8 3 K 4 1 6 J 6
4 1 1 1 3 4 6 6 2 2 2 5 J 3 8 4 4 6 K J 8 J 10 10 K Q 2 5 7 8 10 9 3 7 9 8 7 1 10 5 6 3 Q K Q 5 Q 7 9 9 J K
1 2 3
-1