AT_kupc2016_d 長い黒板
题目描述
在京都大学的某个教室里,安装了两行 $N$ 列的黑板。由于黑板太长,人们很难完全掌握哪些黑板已经被使用过,哪些黑板尚未使用。
因此,最近引入了一种黑板搜索装置。对于任意整数 $W$,可以将两行 $W$ 列的黑板使用情况作为查询输入到该装置中,以判断这种使用情况是否作为部分黑板列存在于黑板中。如果存在某个 $i < j$ 使得黑板的第 $i$ 列到第 $j$ 列的使用情况与查询一致,则称这种使用情况是该黑板的部分黑板列。
为了确保即将进行的演讲顺利进行,你决定编写一个程序来利用这个黑板搜索装置确定整个黑板的使用情况。由于每次搜索需要一定时间,希望尽量减少搜索次数。
黑板的整体使用情况在开始时就已经确定,并且不会发生变化。
输入格式
初始输入如下:
- 第一行:一个整数 $N$ $(1 \leq N \leq 100)$,表示黑板的长度。
之后,你的程序需要输出黑板搜索装置的查询。每个查询的形式如下:
- 两行字符串 $s_1$ 和 $s_2$,分别表示部分黑板列的上段和下段。字符串中的 `#` 表示已被使用的黑板,`.` 表示未被使用的黑板。$s_1$ 和 $s_2$ 的长度必须相同。每行字符串末尾应有换行符。
接下来,黑板搜索装置会返回一个字符 $r$,形式如下:
- 一个字符 $r$,表示为 `T` 或 `F`。
- `T` 表示前一个查询的部分黑板列存在于黑板中。
- `F` 表示前一个查询的部分黑板列不存在于黑板中。
如果前一个查询已经是整个黑板,或者查询次数超过上限,装置会返回 `end` 字符串。此时,你的程序应立即终止。如果在查询次数上限内,通过查询得到了整个黑板的使用情况,则会被判定为 *Accepted*。注意,最后一次查询也计入查询次数。
输出格式
你的程序需要输出黑板搜索装置的查询,直到找到整个黑板的使用情况或达到查询次数上限。
说明/提示
- 查询次数的上限是 $420$ 次。如果在 $420$ 次以内没有通过查询得到整个黑板的使用情况,则会被判定为 *Query Limit Exceeded*。
### 示例
假设 $N=3$ 且黑板的实际状态为:
```
.#.
...
```
实际情况下,黑板的状态对你的程序是未知的。
```
解答程序的输出 解答程序的输入 说明
3 黑板的长度
.. 检索查询
\## F 先前的部分黑板列不存在于黑板中
. . 检索查询
. T 先前的部分黑板列存在于黑板中
.. .. 检索查询
.. F 先前的部分黑板列不存在于黑板中
.# .. 检索查询
.. T 先前的部分黑板列存在于黑板中
.#. ... 检索查询
... end 先前的部分黑板列是整个黑板,结束
```