D. [COCI 2024/2025 #3] 处理器 / Procesor

    交互题 1000ms 600MiB

[COCI 2024/2025 #3] 处理器 / Procesor

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

#5707. 「COCI 2024/2025 #3」Procesor

标签: 交互 | 时间限制: 1000 ms | 内存限制: 512 MiB |

题目描述

译自 COCI 2024/2025 Contest #3 T5「Procesor

起初,Fran 拥有一个空数组 aa。Fran 总共处理 nn 个询问,每个询问的形式为 xx,即他将 xx 个元素追加到数组 aa 的末尾。在每次询问后,Fran 都想确定数组 aa 中的最小值,一旦确定,他就会将其从数组中移除,且不改变其他元素的编号。

你的任务是通过询问来确定每次询问后数组中的最小值。

交互方式

这是一道交互题。你的目标是编写一个程序来响应这些询问。

输入首先包含一行,包含 nn (1n40)(1 \leq n \leq 40),表示询问的数量。随后是 nn 个询问,每个询问以 xix_{i} 开头 ——即添加到数组中的元素数量 (1xi2000)(1 \leq x_{i} \leq 2000)

在每次询问后,你的程序可以给出形式为 ? i j 的询问。交互器将返回 00(如果 ai<aja_{i} < a_{j})或 11(如果 ai>aja_{i} > a_{j})。你可以假设数组中的所有元素均不相同。且必须满足 iji \neq j,且编号 iijj 不能对应已经移除的元素。

在确定最小值后,你必须输出 ! x,这表示 axa_{x} 是数组 aa 中当前最小的元素(排除已移除的元素)。编号 xx 不能对应已经移除的元素。

你可以多次提问,输出最小值后,下一次询问开始。

当你确定最小值后,交互将继续进行后续的询问。在最后一次询问结束后,交互结束,你的方案将根据所提出的问题数量进行评分。

数组的总长度不会超过 20002000

评分

你的程序将根据所提出的问题数量获得分数。设 qq 为你的程序提出的问题总数。

  • 如果 q2700q \leq 2700,你的程序将获得 120120 分。
  • 如果 2700<q70002700 < q \leq 7000,你的程序将获得 7575 分。
  • 如果 7000<q21047000 < q \leq 2 \cdot 10^{4},你的程序将获得 3535 分。
  • 如果 2104<q81042 \cdot 10^{4} < q \leq 8 \cdot 10^{4},你的程序将获得 1515 分。

样例

输入

3
3

1

0

0

1

1

1

0

输出



? 1 2

? 1 3

? 2 3

! 2

? 1 4

! 4

? 1 5

! 1

最终数组的形式为 3,2,4,1,53, 2, 4, 1, 5

第一个询问输出 11 因为 a1>a2a_{1} > a_{2}

第二个询问输出 00 因为 a1<a3a_{1} < a_{3}

第三个询问输出 00 因为 a2<a3a_{2} < a_{3}

在此之后,可以确定 a2a_{2} 是当前最小的元素,因此输出 ! 2。交互继续进行后续询问。

新初三新高一20260806下午测试

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-8-6 14:00
结束于
2026-8-6 16:40
持续时间
2.7 小时
主持人
参赛人数
15