CF198D Cube Snake
题目描述
你有一个 $n \times n \times n$ 的立方体,被分割成若干个单位立方体。你的任务是用从 $1$ 到 $n^3$ 的正整数给所有单位立方体编号,使得:
- 每个数字只在立方体中出现一次;
- 对于每一个 $1 \leq i < n^3$,编号为 $i$ 和 $i+1$ 的单位立方体互为相邻立方体(即它们有一条相邻的棱);
- 对于每一个 $1 \leq i < n$,都存在至少两个不同的 $i \times i \times i$ 子立方体(由单位立方体组成),这些子立方体的编号是连续的。也就是说,存在两个数 $x$ 和 $y$,使得第一个子立方体的单位立方体编号是 $x, x+1, ..., x+i^3-1$,第二个子立方体的单位立方体编号是 $y, y+1, ..., y+i^3-1$。
请找出并输出一种满足以上条件的编号方案。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 50$),表示立方体的大小,你需要给它的单位立方体编号。
输出格式
按顺序输出立方体的所有层,每层为 $n \times n$ 的矩阵。使用换行分隔各层。按照它们在立方体中的顺序输出各层。具体示例见样例。
保证一定存在满足题意的解。
说明/提示
在样例中,$2\times2\times2$ 的子立方体分别被编号为 $1, \ldots, 8$ 和 $5, \ldots, 12$ 的连续数字。
由 ChatGPT 5 翻译