题目描述

这是一道交互题。

你正在参与一项神秘的密码破解任务。

在每个测试用例中,系统会生成一个由字符 '0''1' 组成的长度为 nn 的秘密字符串 ss

你可以通过以下方式与系统交互:

  • 查询操作

    你可以提交一个查询,格式为:

    1 t
    

其中,tt 是一个由字符 '0''1' 组成的非空字符串,长度不超过 nn。系统将返回字符串 ttss 中作为连续子串出现的次数。

例如,若 s=111011s = \texttt{111011}t=11t = \texttt{11},则系统返回 33,因为 ttss 中出现了三次(位置从 11 开始计数):[1,2][1,2][2,3][2,3][5,6][5,6]

  • 猜测操作

    你可以提交一个猜测,格式为:

    0 i c
    

其中,1in1 \le i \le ncc 是字符 '0''1',表示你猜测 ss 的第 ii 个字符是 cc

系统将返回:

  • 1:如果你的猜测正确。

  • -1:如果你的猜测错误,此时程序应立即终止。

你的任务是在不超过 33 次查询操作的前提下,正确猜测出 ss 中任意一个位置的字符。

请注意,猜测操作不计入查询次数限制。

在每个测试用例开始时,系统会输出一个整数 nn,表示字符串 ss 的长度。

你需要在每个测试用例中独立完成上述任务。

本题为交互题,请确保每次输出后立即刷新输出缓冲区。

在 C++ 中,可以使用 fflush(stdout)cout.flush()

在 Java 中,可以使用 System.out.flush()

在 Python 中,可以使用 sys.stdout.flush()

如果在任何时候接收到系统返回的 -1,你的程序应立即终止。

否则,程序行为未定义,可能导致错误的判题结果。

在所有测试用例完成后,程序应正常结束。

输入格式

无。

输出格式

在每个测试用例开始时,系统会输出一个整数 nn,表示字符串 ss 的长度。

你可以进行以下操作:

  • 查询操作

    1 t
    

系统将返回一个整数,表示字符串 ttss 中作为连续子串出现的次数。

  • 猜测操作

    0 i c
    

系统将返回:

  • 1:如果你的猜测正确。

  • -1:如果你的猜测错误,此时程序应立即终止。

数据规模与约定

  • 测试用例数 TT1T10001 \le T \le 1000

  • 字符串长度 nn2n502 \le n \le 50

  • 每个字符串 ss 仅包含字符 '0''1'

  • 每个查询字符串 tt 的长度满足 1tn1 \le |t| \le n,且仅包含字符 '0''1'

  • 在每个测试用例中,你最多可以进行 33 次查询操作。

  • 每个测试用例中,系统生成的字符串 ss 是固定的,不会在交互过程中改变。

相关