#4560. C1. Hacking Numbers (Easy Version)
C1. Hacking Numbers (Easy Version)
当前没有测试数据。
C1. Hacking Numbers (Easy Version)
| 时间限制 | 内存限制 | 输入 | 输出 |
|---|---|---|---|
| 2 秒 | 256 MB | 标准输入 | 标准输出 |
题目描述
这是该问题的简单版本。在这个版本中,你最多可以发送 条命令。只有解决了该问题的所有版本,你才能进行 Hack 操作。
这是一道交互式题目。
欢迎你,决斗者!在这个交互式挑战中,存在一个未知整数 ()。你需要将它变为输入中给定的整数 。通过驾驭「数学机甲」怪兽的力量,你可以发送以下命令之一:
| 命令 | 约束条件 | 计算结果 | 判定条件 | 数值更新 | 裁判的响应 |
|---|---|---|---|---|---|
| "add " | 若 | "1" | |||
| 否则 | "0" | ||||
| "mul " | 若 | "1" | |||
| 否则 | "0" | ||||
| "div " | 若 整除 | "1" | |||
| 否则 | "0" | ||||
| "digit" | 无 | 无 | "1" | ||
你需要使用至多 条命令将 变为 。
是一个函数,返回非负整数 的所有数位上的数字之和。例如,。
输入格式
输入包含多组测试用例。第一行输入测试用例的数量 ()。每组测试用例的描述如下:
每组测试用例仅包含一行,输入一个整数 ()。
交互方式
每组测试用例的交互过程从读取整数 开始。
要发送命令,你需要按以下格式输出一行内容:
-
"add $y$":将 加上整数 ()。 若 落在区间 内,裁判会输出"1"(命令执行成功);否则输出"0"(命令执行失败)。执行成功时更新 ,否则 保持不变。 -
"mul $y$":将 乘以正整数 ()。 若 落在区间 内,裁判会输出"1"(命令执行成功);否则输出"0"(命令执行失败)。执行成功时更新 ,否则 保持不变。 -
"div $y$":将 除以正整数 ()。 若 能整除 ,裁判会输出"1"(命令执行成功);否则输出"0"(命令执行失败)。执行成功时更新 ,否则 保持不变。 -
"digit":将 变为其所有数位上的数字之和。 裁判总会输出"1",并更新 。
重要注意事项
- 命令是大小写敏感的(例如
"Add 1"是无效命令)。 - 当你确定 等于 时,输出
"!":- 裁判会输出
"1"表示 ,输出"-1"表示 。 - 输出
"!"不计入最多 7 条命令的限制。
- 裁判会输出
- 若单个测试用例发送超过 7 条命令,或发送无效命令,该命令的响应会是
"-1"。收到该响应后,程序需立即终止,否则会被判为错误答案(Wrong Answer)。 - 输出每条命令后,必须输出换行符并刷新输出缓冲区(否则会触发 Idleness limit exceeded 错误):
- C++:
fflush(stdout)或cout.flush(); - Java:
System.out.flush(); - Python:
sys.stdout.flush(); - Rust:
std::io::stdout().flush(); - 其他语言请参考对应文档。
- C++:
- 交互器是非自适应的:未知整数 仅会因你的合法命令更新,不会主动改变。
Hack 格式
若要进行 Hack,需按照以下格式构造输入:
第一行输入整数 (),表示测试用例数量。
每组测试用例的第一行输入两个正整数 和 (),分别表示目标值和初始的未知整数。
样例交互过程
裁判侧输入(Hack 格式)
2
100 9
5 1234
程序侧输出
add -10
add 1
mul 10
!
digit
div 2
!
裁判侧响应
0
1
1
1
1
1
1
样例解释
| 交互阶段 | 程序输出 | 裁判响应 | 详细说明 |
|---|---|---|---|
| 初始化 | - | 2 | 共 2 组测试用例 |
| 第一组测试用例 | - | 目标值 ,初始未知整数 | |
| 命令 1 | add -10 | 0 | ,命令失败, 仍为 9 |
| 命令 2 | add 1 | 1 | ,命令成功, |
| 命令 3 | mul 10 | ,命令成功, | |
| 确认 | ! | ,判定正确 | |
| 第二组测试用例 | - | 目标值 ,初始未知整数 | |
| 命令 1 | digit | 1 | 数位和 ,命令成功, |
| 命令 2 | div 2 | 2 整除 10,命令成功, | |
| 确认 | ! | ,判定正确 | |
注:样例中的空行仅为便于理解,实际交互过程中不会出现空行。