AT_agc044_d [AGC044D] Guess the Password
题目描述
[problemUrl]: https://atcoder.jp/contests/agc044/tasks/agc044_d
**这是一个交互式问题。**
你的任务是猜出一个秘密密码 $S$。密码是一个长度不超过 $L$ 的非空字符串,且密码的每个字符都是小写英文字母(a, b, ..., z)、大写英文字母(A, B, ..., Z)或数字(0, 1, ..., 9)中的一个。
你可以通过发送查询来猜测秘密密码 $S$。每次查询,你需要发送一个满足上述密码要求的字符串 $T$,对于每个查询,你将获得 $S$ 和 $T$ 的编辑距离(允许的操作为删除、插入、替换)的结果作为反馈。你最多可以发送 $Q$ 次查询。
**注意:** 编辑距离(允许的操作为删除、插入、替换)的定义可参考 [Wikipedia 上的此页面](https://en.wikipedia.org/w/index.php?title=Levenshtein_distance&oldid=954598393)。
输入格式
要发送查询,请向标准输出输出如下格式(末尾需换行):
> ? $T$
其中,字符串 $T$ 必须满足密码的要求。
对于每个查询的回复 $ans$,会从标准输入以如下格式给出:
> $ans$
当你确定了秘密密码 $S$ 后,请向标准输出输出如下格式(末尾需换行):
> ! $S$
然后立即终止程序。
输出格式
见上文。
说明/提示
### 限制
- $L = 128$
- $Q = 850$
- 秘密密码 $S$ 在程序与评测机交互开始前已被选定。
### 判定
- **每次输出后必须刷新标准输出。** 如果不这样做,评测结果可能会是 `TLE`。
- 输出你认为的秘密密码后,必须立即终止程序。否则评测结果未定义。
- 如果发送了格式不正确的查询(例如,发送的字符串不满足密码要求,输出行首不是 `?`),程序异常终止,或查询次数超过 $Q$,评测结果未定义(不一定是 `WA`)。
### 输入输出样例
在以下示例中,秘密密码为 `Atcod3rIsGreat`。
| 输入 | 输出 |
| :--- | :--- |
| $?\ AtcoderIsBad$ | $5$ |
| $?\ AtcoderIsGreat$ | $1$ |
| $!\ Atcod3rIsGreat$ | |
由 ChatGPT 4.1 翻译