石头剪刀布游戏由两名玩家同时出招进行:石头(Rock)、布(Paper)或剪刀(Scissors)。如果双方出招相同,则为平局。否则,石头胜剪刀,布胜石头,剪刀胜布。
上述过程可以重复多次。在本题中,两个有限状态机(FSM)将在多轮比赛中进行对抗。(形式上,本题中的 FSM 指的是 Moore 型状态机。)
用于玩石头剪刀布的 FSM 拥有有限个状态。每个状态由以下信息描述:FSM 在下一轮中将出的招式,以及在对手分别出石头、布、剪刀时,FSM 将转移到的新状态。
幸运的是,你了解对手的 FSM——除了一个细节:你不知道该 FSM 的初始状态。
你的任务是设计你自己的 FSM 来对抗给定的 FSM。你的 FSM 必须在最初的 10 亿轮中至少赢得 99% 的轮次。这就是我们所说的史诗级胜利(epic win)!
输入格式
输入文件包含对手 FSM 的描述,格式如下:
第一行包含一个整数 $n$ ($1 \le n \le 100$),表示 FSM 中的状态数。状态编号为 $1$ 到 $n$。接下来的 $n$ 行,每行包含一个状态的描述:一个字符 $c_i$ 表示 FSM 出的招式,以及三个整数 $r_i, p_i, s_i$ 分别表示在看到对手出石头、布、剪刀时转移到的下一个状态($c_i$ 可以是 "R"、"P" 或 "S";$1 \le r_i, p_i, s_i \le n$)。
输出格式
按相同格式输出你设计的 FSM 的描述。
你设计的 FSM 的初始状态为第 1 个状态。
状态总数不得超过 $50\,000$。
样例
输入 1
2 R 1 1 2 P 2 2 1
输出 1
2 P 1 2 1 S 1 1 1
说明
题目中的图片展示了上述样例输入中给出的对手 FSM,以及样例输出中给出的你的一种可能的解决方案。
对手 FSM 会一直出石头或布(取决于其初始状态),直到它看到剪刀——看到剪刀会触发其行为的改变。
击败这种 FSM 的一种方法是出布。如果对手一直出石头,只需持续出布即可获胜。如果对手 FSM 出布,则通过出一次剪刀触发它转变为出石头,之后它将一直出石头,而你将通过持续出布来击败它。