CF1970D1 Arithmancy (Easy)

题目描述

# 数字术 (简单) 维克多教授正在准备她的数字术课程。她需要为课程准备 $ n $ 个不同的魔法词。每个魔法词是一个由字符 X 和 O 组成的字符串。一个咒语是通过连接两个魔法词组成的字符串。咒语的能量等于它的不同非空子字符串的数量。例如,咒语 XOXO 的能量等于 7,因为它有 7 个不同的子字符串:X, O, XO, OX, XOX, OXO 和 XOXO。 每个学生将通过连接两个魔法词来创造他们自己的咒语。由于学生们对魔法还不太熟练,他们会独立且均匀地从提供的 $ n $ 个魔法词中随机选择两个词。因此,学生选择的两个词有可能是相同的。然后每个学生将计算他们咒语的能量,并告诉维克多教授。为了检查他们的作业,并当然为了给学生们留下深刻印象,维克多教授需要找出每个学生使用了哪两个魔法词以及它们的顺序来创建对应的咒语。 你的程序需要扮演维克多教授的角色:首先,创建 $ n $ 个不同的魔法词,然后处理多个请求,其中给定咒语能量并需要确定用于创建相应咒语的两个魔法词的索引及其正确顺序。

输入格式

输出格式

这是一个交互题。 首先,你的程序应该读取一个整数 $ n $ ( $ 1 \le n \le 3 $ ),表示要准备的魔法词数量。然后,它应该输出它创建的 $ n $ 个魔法词,每行一个。魔法词必须是不同的,每个魔法词至少有 1 个且最多有 $ 30\cdot n $ 个字符,每个字符必须是 X 或 O。我们将你输出的第 $ i $ 个魔法词记作 $ w_i $ ( $ 1 \le i \le n $ )。 接下来,你的程序应该读取一个整数 $ q $ ( $ 1 \le q \le 1000 $ ),表示班级中的学生数量。然后,它应该重复以下过程 $ q $ 次,每个学生一次。 对于第 $ j $ 个学生,它应该首先读取一个整数 $ p_j $,表示他们咒语的能量。可以保证这个数字是通过在 1 到 $ n $ 之间独立且均匀随机选择两个索引 $ u_j $ 和 $ v_j $,连接 $ w_{u_j} $ 和 $ w_{v_j} $,并找到结果字符串的不同非空子字符串的数量计算出来的。然后,你的程序必须按顺序输出数字 $ u_j $ 和 $ v_j $ ( $ 1 \le u_j, v_j \le n $ )。 注意,找到任何两个连接后能量与给定能量相同的魔法词是不够的。你必须找到学生使用的确切词语和确切顺序。 在输出所有魔法词和为每个学生输出 $ u_j $ 和 $ v_j $ 后,请记得刷新输出流。 ## 样例 #1 ### 样例输入 #1 ``` 2 XOXO X 2 15 11 ``` ### 样例输出 #1 ``` XOXO X 1 1 2 1 ```