SP8328 MOVEBOOK - Move the books

题目描述

Sheldon 和 Lenard 是一对热衷玩游戏的书呆子,他们玩了一个称为「移动书籍」的游戏。游戏的场地是一条无限长序列的格子,从左到右依次编号为 1, 2, 3, ...。在某些格子上放置着他们最喜欢的物理书。每位玩家的操作包括从一个格子中拿出一本书,将其移到左侧的某个格子里。不过必须遵守一个规则:不能让书越过已有书的格子,也就是说,如果有某格子 $k$ 有书,且位置 $i < k < j$,你不能把书从位置 $j$ 移到位置 $i$。尽管如此,你可以把书放到已堆叠书的格子里;堆叠的书按照到达顺序排列,仅可以从最上面移走书。两位玩家交替进行操作,无法进行操作的一方输掉比赛。 他们玩这个游戏已经很久了。每次都是 Sheldon 先手,而他几乎总是获胜。Lenard 对此感到不满,希望能先手。然而,Sheldon 不让步,这引发了争执。最后,他们达成了一个协议: - 游戏开始时,会在不同格子上放置 $N$ 本书,初始配置由计算机产生,因此与玩家无关。 - Lenard 选择两个自然数 $a$ 和 $c$,Sheldon 选择自然数 $b$。他们选择时对方的选择都是未知的。随后,新增三本书:一本放在当前最右侧书的右边第 $a$ 个格子上,接着一本放在这个新位置右边第 $b$ 个格子上,最后一本放在后者右边第 $c$ 个格子上。 - 他们按照原始规则重新开始游戏,且 Sheldon 依旧先手。 现在,Lenard 认为可能存在某些 $(a, c)$ 的组合,即无论 Sheldon 选择什么数字,他都能确保获胜。给定棋盘初始状态,找出所有令 Lenard 保证胜利的 $(a, c)$ 组合,以字典序排序 \[(a_1, c_1) < (a_2, c_2) \text{ 当且仅当 } a_1 < a_2 \text{ 或 } (a_1 = a_2 \text{ 且 } c_1 < c_2)\],输出第 $K$ 个组合。如果这样保证胜利的组合不足 $K$ 个,输出 `Impossible`。

输入格式

输入第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例的第一行包含两个空格分隔的整数 $N$ 和 $K$,其中 $1 \leq N \leq 10^5$,$1 \leq K \leq 10^9$。 接下来的一行包含 $N$ 个空格分隔的整数 $p_1, p_2, \ldots, p_N$,表示初始状态下每本书所在的格子编号。

输出格式

对每个测试用例,输出字典序第 $K$ 小的整数对 $(a, c)$,这两个整数需用空格分隔,每个测试用例结果占一行。如果某个测试用例中不足 $K$ 个能令 Lenard 保证获胜的组合,则输出 `Impossible`。

说明/提示

- $1 \leq T \leq 10$ - $1 \leq N \leq 10^5$ - $1 \leq K \leq 10^9$ - $1 \leq p_i \leq 10^9$ **本翻译由 AI 自动生成**