logo AlgoBeat OnlineJudge
登录 注册

#214079. [PO Final 2023] 锯木 / The Sawmill

内存限制:1024 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

1G, 1s, sagverket


Alma 有很多木板,她想把这些木板锯成若干段。因此,她来到了一家能够自动切割并分类木板的先进锯木厂。每块木板可以表示为一条无限长的 轴,锯木厂会在 个位置 处切割,其中 是由用户选择的一个数。随后,所有有限长度的木段会被分类并输出。Alma 想知道这些数 ,但似乎没有人知道锯木厂内部的结构。于是,她计划通过投入若干选择得当的 来找出这些数。

个秘密整数 。注意这些数两两不同。你的目标是找出这些数。你可以向锯木厂送入木板。锯木厂以一个整数 作为输入(),并执行如下操作:

  1. 创建列表
  2. 排序。
  3. 创建列表 ,其中对所有 ,有
  4. 排序,并返回其中的 个整数。

你最多可以送入 块木板,但在子任务 中可以送入 块木板

实现细节

你的程序应首先读入两个整数 )。 是需要找出的秘密数字个数, 是测试组编号。给出 的原因是为了便于获得部分分。

接着,你可以开始送入木板。打印一行 以向锯木厂送入带有数字 的木板。数 必须满足 。随后,你的程序应在一行中读入 个整数,即 。注意:如果 恰好等于某个 ,则 可能为

当你已经找到 时,你应打印一行

然后你的程序应终止,并且不再打印任何内容。

请在每次询问后都刷新缓冲区,否则可能会因为超时而被判为超时。在 C++ 中可使用例如 cout << flushfflush(stdout);在 Python 中可使用 stdout.flush();在 Java 中可使用 System.out.flush()

输入格式

见「实现细节」。

输出格式

见「实现细节」。

样例

样例输入 1

2 2

3 3

2 6

样例输出 1


? 5

? 10

! 2 8

数据范围与提示

子任务

本题采用捆绑测试。

子任务编号 分值 限制
,可最多发送 块木板。
无额外约束。