题目描述
这是一道交互题。
你正在参与一项神秘的密码破解任务。
在每个测试用例中,系统会生成一个由字符 '0' 和 '1' 组成的长度为 的秘密字符串 。
你可以通过以下方式与系统交互:
-
查询操作:
你可以提交一个查询,格式为:
1 t
其中, 是一个由字符 '0' 和 '1' 组成的非空字符串,长度不超过 。系统将返回字符串 在 中作为连续子串出现的次数。
例如,若 ,,则系统返回 ,因为 在 中出现了三次(位置从 开始计数):、 和 。
-
猜测操作:
你可以提交一个猜测,格式为:
0 i c
其中,, 是字符 '0' 或 '1',表示你猜测 的第 个字符是 。
系统将返回:
-
1:如果你的猜测正确。 -
-1:如果你的猜测错误,此时程序应立即终止。
你的任务是在不超过 次查询操作的前提下,正确猜测出 中任意一个位置的字符。
请注意,猜测操作不计入查询次数限制。
在每个测试用例开始时,系统会输出一个整数 ,表示字符串 的长度。
你需要在每个测试用例中独立完成上述任务。
本题为交互题,请确保每次输出后立即刷新输出缓冲区。
在 C++ 中,可以使用 fflush(stdout) 或 cout.flush();
在 Java 中,可以使用 System.out.flush();
在 Python 中,可以使用 sys.stdout.flush()。
如果在任何时候接收到系统返回的 -1,你的程序应立即终止。
否则,程序行为未定义,可能导致错误的判题结果。
在所有测试用例完成后,程序应正常结束。
输入格式
无。
输出格式
在每个测试用例开始时,系统会输出一个整数 ,表示字符串 的长度。
你可以进行以下操作:
-
查询操作:
1 t
系统将返回一个整数,表示字符串 在 中作为连续子串出现的次数。
-
猜测操作:
0 i c
系统将返回:
-
1:如果你的猜测正确。 -
-1:如果你的猜测错误,此时程序应立即终止。
数据规模与约定
-
测试用例数 :。
-
字符串长度 :。
-
每个字符串 仅包含字符
'0'和'1'。 -
每个查询字符串 的长度满足 ,且仅包含字符
'0'和'1'。 -
在每个测试用例中,你最多可以进行 次查询操作。
-
每个测试用例中,系统生成的字符串 是固定的,不会在交互过程中改变。
相关
在下列比赛中:
京公网安备11010802045784号