#P1000. 🎁 子睿和昊宇的幸运抽奖1

🎁 子睿和昊宇的幸运抽奖1

课堂挑战 · DFS 枚举
三个小球,三次抽取。和子睿、昊宇一起找齐所有可能!

题目故事

元旦联欢会快到了,子睿和昊宇一起布置了一个“幸运抽奖角”。

子睿把 3 个小球放进抽奖箱,分别标上 1、2、3。他负责抽球,昊宇拿着小本子记录:每抽出一个小球,就记下它的编号,再把这个小球放回箱中。这样连续抽取 3 次,便得到一组抽奖记录。

“如果三次都抽到 1 号球呢?”子睿问。

“当然有可能!因为每次都会把球放回去。”昊宇写下了 1 1 1,“我们来把所有可能的记录都找出来吧!”

请你编写程序,帮他们输出所有可能的抽奖记录,并按字典序从小到大排列。

抽奖规则

项目 固定规则
小球数量 3 个
小球编号 1、2、3
抽取次数 每组记录一共抽取 3 次
抽取方式 每次抽出 1 个,记录编号后立即放回
一组记录 按抽取顺序写下的 3 个编号

同一个编号可以在一组记录中出现多次。抽取顺序不同,就属于不同的记录,例如 1 2 3 和 3 2 1 是两种不同的情况。

输入格式

无输入。 小球数量、编号范围和抽取次数均已在题目中固定,程序无需读取任何数据。

输出格式

按字典序从小到大输出所有可能的抽奖记录,共 27 行。

每行输出 3 个整数,依次表示第 1、2、3 次抽到的小球编号,相邻两个整数之间用一个半角空格隔开。每种记录恰好输出一次。

仅输出这些记录,不要输出标题、总数、提示文字或省略号。

完整样例

样例输入为空;下面的输入框留空是正常的,不需要输入“无”字。

1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3
3 1 1
3 1 2
3 1 3
3 2 1
3 2 2
3 2 3
3 3 1
3 3 2
3 3 3

样例说明

每次抽取都有 3 种选择,连续抽取 3 次,共有 3 × 3 × 3 = 27 种记录。上面的样例输出已经列出了全部情况,没有省略。

什么是字典序?

比较两组记录时,从左往右找到第一个不同的位置,该位置编号较小的记录排在前面。

例如:

  • 1 1 3 排在 1 2 1 前面,因为第一个不同的位置是第 2 位,1 < 2。
  • 1 3 3 排在 2 1 1 前面,因为第一个不同的位置是第 1 位,1 < 2。

数据范围与约定

  • 本题只有上述一组固定任务,无需读入小球数量或抽取次数。
  • 每个编号都属于 {1, 2, 3},每组记录长度固定为 3。
  • 使用标准输出;时间限制 1 秒,内存限制 256 MiB。