#ATagc044d. [AGC044D] Guess the Password

[AGC044D] Guess the Password

题目描述

这是一个交互式问题。

你的任务是猜出一个秘密密码 SS。密码是一个长度不超过 LL 的非空字符串,且密码的每个字符都是小写英文字母(a, b, ..., z)、大写英文字母(A, B, ..., Z)或数字(0, 1, ..., 9)中的一个。

你可以通过发送查询来猜测秘密密码 SS。每次查询,你需要发送一个满足上述密码要求的字符串 TT,对于每个查询,你将获得 SSTT 的编辑距离(允许的操作为删除、插入、替换)的结果作为反馈。你最多可以发送 QQ 次查询。

注意: 编辑距离(允许的操作为删除、插入、替换)的定义可参考 Wikipedia 上的此页面

输入格式

要发送查询,请向标准输出输出如下格式(末尾需换行):

? TT

其中,字符串 TT 必须满足密码的要求。

对于每个查询的回复 ansans,会从标准输入以如下格式给出:

ansans

当你确定了秘密密码 SS 后,请向标准输出输出如下格式(末尾需换行):

! SS

然后立即终止程序。

输出格式

见上文。

说明/提示

限制

  • L=128L = 128
  • Q=850Q = 850
  • 秘密密码 SS 在程序与评测机交互开始前已被选定。

判定

  • 每次输出后必须刷新标准输出。 如果不这样做,评测结果可能会是 TLE
  • 输出你认为的秘密密码后,必须立即终止程序。否则评测结果未定义。
  • 如果发送了格式不正确的查询(例如,发送的字符串不满足密码要求,输出行首不是 ?),程序异常终止,或查询次数超过 QQ,评测结果未定义(不一定是 WA)。

输入输出样例

在以下示例中,秘密密码为 Atcod3rIsGreat

输入 输出
? AtcoderIsBad?\ AtcoderIsBad 55
? AtcoderIsGreat?\ AtcoderIsGreat 11
! Atcod3rIsGreat!\ Atcod3rIsGreat

由 ChatGPT 4.1 翻译