#C. [CZOJ 一周一测 R21 C] GueSS-100

    交互题 1000ms 256MiB

[CZOJ 一周一测 R21 C] GueSS-100

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

TT 组数据,每次给您两个正整数 n,kn,k

你需要猜一个正整数 qq,保证 q[1,n]q\in [1,n]

你每次可以用诸如 ? x 的询问,然后交互库会输出形如 d 的回答,d=qxmodkd=|q-x| \bmod k,对于每组数据您可以至多进行 100100 次这样的查询。

你可以通过 ! x 输出你认为正确的 qq。每组数据,您至多只能进行一次这样的操作,在进行之后,你应该刷新缓冲区并读入两个正整数 n,kn,k,表示下一次的询问。(如果这是最后一组,则不需要此操作)

现在你要求出 qq


需要注意的是,在每一次操作后,需要调用以下函数刷新缓存:

  • 对于 C/C++:fflush(stdout)
  • 对于 C++:std::cout << std::flush
  • 对于 Java:System.out.flush()
  • 对于 Python:stdout.flush()
  • 对于 Pascal:flush(output)
  • 对于其他语言,请自行查阅对应语言的帮助文档。

每一次一开始交互库会给你 n,kn,k,然后你可以按题目描述中的方式进行询问或回答答案。

特别的,对于 C++ 语言,在输出换行时如果你使用 std::endl 而不是 '\n',也可以自动刷新缓冲区。

输入格式

输出格式

输入输出样例 #1

输入 #1

1
3 5

2

输出 #1

? 1

! 3

说明/提示

本题采用捆绑测试计分。每组数据中只有全部通过 TT 次测试才可以获得全部分数。

Sub.编号 约束 分值
1 k>nk>n 1515
2 n100n \le 100 2525
3 保证 qqkk 的倍数  30 ~30~
4 无特殊限制 3030

对于所有数据,保证 $2 \le n\le 10^{12},3 \le k \le 10^{12},1 \le T \le 20$。

[CZR-021] CZOJ Weekly Exercise Round 21

未参加
状态
已结束
规则
IOI
题目
6
开始于
2026-4-19 17:00
结束于
2026-4-19 22:00
持续时间
5 小时
主持人
参赛人数
1