#agc044d. [agc044_d]Guess the Password

[agc044_d]Guess the Password

题目描述

这是一个交互式任务。

你需要猜测一个秘密密码 SS。密码是一个非空字符串,长度最多为 LL。密码可以包含小写字母、大写字母和数字。

为了猜测秘密密码 SS,你可以提出询问。一个询问由一个有效的密码 TT 组成,对于这个询问,返回 SSTT 之间的编辑距离(编辑距离可以通过删除、插入、替换操作得到)。你最多可以提出 QQ 个询问。

注意: 编辑距离的定义(包括删除、插入、替换操作),请参考维基百科页面

约束条件

  • L=128L = 128
  • Q=850Q = 850
  • 秘密密码 SS 是在交互开始之前选择的。

交互过程

要提出一个询问,请在标准输出中打印(末尾带换行符)

? TT

其中字符串 TT 必须是一个有效的密码。

每个询问的答案 ansans 必须从标准输入中以以下形式读取:

ansans

一旦确定了隐藏的密码 SS,应该在标准输出中打印(末尾带换行符)

! SS

并终止你的程序。

判定

  • 在每次输出之后,你必须刷新标准输出。 否则可能会出现超时错误 (TLE)。
  • 在打印(猜测的)隐藏密码之后,程序必须立即终止。否则,评判器的行为是未定义的。
  • 如果你确定的密码是错误的,则会得到错误答案 (WA)。
  • 如果你提出了一个格式不正确的询问(例如,字符串不是有效的密码,或者忘记写 ?),或者你的程序崩溃,或者你提出的询问超过了 QQ 个,评判器的行为是未定义的(不一定会给出 WA)。

示例

在该问题的唯一样例测试中,隐藏的密码是 Atcod3rIsGreat

以下是一个交互示例,假设 S=S=Atcod3rIsGreat

输入

输出

texttt?AtcoderIsBad\\texttt{? AtcoderIsBad}

55

texttt?AtcoderIsGreat\\texttt{? AtcoderIsGreat}

11

texttt!Atcod3rIsGreat\\texttt{! Atcod3rIsGreat}