P16087 [ICPC 2024 NAC] Magic Bean

题目描述

:::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/cyh00zcy.png) ::: “魔法豆”是一种结合了指尖陀螺和益智玩具的装置,有 $ 30 $ 个彩色珠子在三个圆形轨道中移动。在复原状态下,上方的圆环包含十个不可区分的橙色珠子,左下方的圆环包含十个不可区分的灰色珠子,右下方的圆环包含十个不可区分的红色珠子。每个圆环中的珠子可以独立旋转。此外,中间还有一个圆环可以旋转,旋转时会交换三个圆环之间连续的三个珠子。 你的兄弟刚刚借走了你的魔法豆,并随意旋转了这些圆环,打乱了珠子。你的任务是通过找到一系列合法的旋转操作,使装置恢复到复原状态。你不需要找到最短的解,但你的解使用的步数不应超过 $ 240 $ 步。给定的输入是经过至多 $ 240 $ 步操作后打乱的状态。

输入格式

输入包含恰好三行。每行是一个长度为十的字符串,仅由字符 `o`、`g` 和 `r` 组成。第一行描述上方圆环中的十个珠子,第二行描述左下方圆环中的珠子,第三行描述右下方圆环中的珠子。 字符 `o` 表示橙色珠子,`g` 表示灰色珠子,`r` 表示红色珠子。珠子按顺时针顺序列出,编号与图中一致。 输入配置是通过对复原状态应用至多 $ 240 $ 步操作后得到的结果。

输出格式

输出第一行一个整数 $ k $($ 0 \le k \le 240 $),表示你解决该谜题所需的步数。 如果 $ k > 0 $,接下来输出 $ k $ 行,每行一个操作,按顺序列出。每个操作由一个字符表示旋转哪个圆环,紧接着一个数字表示顺时针旋转的步数。上方圆环用 `o` 表示,左下方圆环用 `g` 表示,右下方圆环用 `r` 表示,中间圆环用 `c` 表示。对于前三个圆环,旋转步数为 $ 1 $ 到 $ 9 $;对于中间圆环,旋转步数为 $ 1 $ 到 $ 2 $。 下面的两张图片展示了两个样例的输入状态。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/eqh3r6u7.png) :::

说明/提示

翻译由 DeepSeek V3.2 完成