AT_npcapc_2024_e Aim High
题目描述
你将在二维平面上进行一场游戏。最开始时,在所有满足 $ -100 \le x \le 100 $ 且 $ -100 \le y \le 0 $ 的格点 $(x, y)$ 上,各放置有 $1$ 个棋子。
你可以进行如下操作任意次(可以为 $0$ 次):
- 选择一对格点 $(a, b)$、$(c, d)$,要求 $|a - c| + |b - d| = 1$,且这两个点上都至少有 $1$ 个棋子。将 $(a, b)$ 上的一个棋子,以 $(c, d)$ 为中心顺时针或逆时针旋转 $90$ 度后,放置在新位置 $(e, f)$,同时将 $(c, d)$ 上的一个棋子移除(即减少 $1$ 个)(新位置 $(e, f)$ 上如果已有棋子也不影响)。
你的目标是,在所有操作结束后,使某个位点的 $y$ 坐标 $\geq N$,且该位置上有棋子。判断目标是否可达,若可达则构造一个具体的操作序列。
共有 $T$ 组测试数据,请对每个数据进行求解。
输入格式
输入以如下格式从标准输入读入:
> $T$ $\mathrm{case}_1$ $\mathrm{case}_2$ $\vdots$ $\mathrm{case}_T$
其中 $\mathrm{case}_i$ 表示第 $i$ 个测试数据,每组测试数据格式如下:
> $N$
输出格式
请按输入顺序输出每组测试数据的答案,每组之间用换行分隔。
对于每个测试数据,若无法达成目标,则输出 `-1`。否则,输出操作次数 $K$,并依次输出每次操作的信息。如果第 $i$ 次操作是将 $(a_i, b_i)$ 上的一个棋子,以 $(c_i, d_i)$ 为中心旋转后移动到 $(e_i, f_i)$,请按如下格式输出:
> $K$ $a_1$ $b_1$ $c_1$ $d_1$ $e_1$ $f_1$ $a_2$ $b_2$ $c_2$ $d_2$ $e_2$ $f_2$ $\cdots$ $a_K$ $b_K$ $c_K$ $d_K$ $e_K$ $f_K$
说明/提示
### 样例解释 1
第一次操作中,将 $(1, 0)$ 位置上的棋子,以 $(0, 0)$ 为中心顺时针旋转 $90$ 度,放到 $(0, 1)$。
通过这一步,可以将一个棋子移到 $y \geq 1$ 的点 $(0, 1)$,从而达成目标。
### 数据范围
- $1 \leq T \leq 6$
- $1 \leq N \leq 6$
由 ChatGPT 5 翻译