#P16798. [NWRRC 2025]High Score

[NWRRC 2025]High Score

题目描述

赫敏喜欢玩一款电脑游戏。游戏中,玩家维护一个无序整数多重集合。

初始时,多重集合为空,玩家得分为 00。在游戏的任意时刻,多重集合中至多包含 kk 个整数,且这些整数可以相同。

每一回合,玩家可以选择执行以下操作之一:

  • 插入(Insert):选择整数 2244,将其插入多重集合。该操作不增加得分,并且只有在操作前集合大小严格小于 kk 时才能执行。
  • 合并(Merge):选择一个整数 xx,要求多重集合中至少有两个 xx。删除两个 xx,并插入一个 2x2x。该操作使玩家的得分增加 2x2x

玩家可以在任意一回合结束后停止游戏,此时当前得分成为最终得分。

赫敏在排行榜上看到了自己曾经取得的 nn 个最高分:

h1,h2,,hn.h_1,h_2,\ldots,h_n.

对于每个 hih_i,请找出一个可能的游戏终局多重集合,使得赫敏能够以分数 hih_i 结束游戏;如果分数 hih_i 不可能取得,则报告无解。

你只需要输出终局多重集合,不需要输出具体的操作序列。

输入格式

第一行包含两个整数 n,kn,k,分别表示排行榜中的分数数量以及多重集合的最大容量。

接下来 nn 行,每行包含一个整数 hih_i,表示一个需要处理的分数。

输出格式

对于每个分数 hih_i

  • 如果无法取得该分数,输出一行 -1
  • 否则输出一行,首先输出终局多重集合的大小 ss,随后输出 ss 个整数,表示集合中的元素,元素顺序任意。

输出的多重集合必须确实能够作为得分为 hih_i 时的某个游戏终局。

如果有多种答案,输出任意一种即可。

数据范围

1n104,1\le n\le 10^4, 2k16,2\le k\le 16, 1hi109,1\le h_i\le 10^9, 0sk.0\le s\le k.

样例 1

1 2
12
1 8

样例 2

4 5
4
12
10
20
2 4 2
5 8 4 2 2 4
-1
3 2 4 8

样例 3

1 16
19956
1 2048

样例说明

样例 1 的一种操作过程如下:

$$\varnothing \rightarrow \{2\} \rightarrow \{2,2\} \rightarrow \{4\} \rightarrow \{4,4\} \rightarrow \{8\}.$$

两次合并分别增加 44 分和 88 分,因此最终得分为 1212