AT_abc466_c [ABC466C] Count Close Pairs

题目描述

本题是一道 **交互式问题**(你编写的程序与评测程序通过标准输入输出进行交互的问题)。 在数轴上,点 $ 1 $ , $ 2 $ , $ \ldots $ , $ N $ **按此顺序** 从左到右排列。 最初,你只会得到整数 $ N $。 之后,你可以向评测程序进行最多 $ \bm{2N} $ 次以下提问: - 选择满足 $ 1 \leq i < j \leq N $ 的整数 $ i,j $ ,询问点 $ i $ 和点 $ j $ 之间的距离是否不超过 $ 1 $。 请输出距离不超过 $ 1 $ 的点对数量,即满足 $ 1\leq i $ N $ 接着,你可以向评测程序重复提问,最多 $ 2N $ 次。 提问请按以下格式输出到标准输出。其中, $ i,j $ 必须是满足 $ 1 \leq i ? $ i $ $ j $ 作为对此提问的响应,标准输入会给出以下两种回复之一: ``` Yes ``` ``` No ``` 其中,`Yes` 表示点 $ i $ 和点 $ j $ 之间的距离不超过 $ 1 $,`No` 表示点 $ i $ 和点 $ j $ 之间的距离大于 $ 1 $。 当得出问题的答案 $ X $ 后,请按以下格式输出答案。随后,请立即结束程序。 > ! $ X $

输入格式

输出格式

说明/提示

### 样例 以下是 $ N = 3 $,点 $ 1,2,3 $ 的坐标分别为 $ 0,0.7,1.5 $ 时的输入输出示例。(点 $ 1,2,3 $ 的坐标不会作为输入给出。) | 输入 | 输出 | 说明 | | :--- | :--- | :--- | | `3` | | 给出 $ N $。 | | | `? 1 2` | 向评测程序询问点 $ 1,2 $ 之间的距离是否不超过 $ 1 $。 | | `Yes` | | 评测程序回复点 $ 1,2 $ 之间的距离不超过 $ 1 $。 | | | `? 1 3` | 向评测程序询问点 $ 1,3 $ 之间的距离是否不超过 $ 1 $。 | | `No` | | 评测程序回复点 $ 1,3 $ 之间的距离大于 $ 1 $。 | | | `? 2 3` | 向评测程序询问点 $ 2,3 $ 之间的距离是否不超过 $ 1 $。 | | `Yes` | | 评测程序回复点 $ 2,3 $ 之间的距离不超过 $ 1 $。 | | | `! 2` | 作为满足条件的点对数量,回答 $ 2 $。提问次数为 $ 3 $ 次,满足不超过 $ 2N=6 $ 次的限制。因为回答的点对数量正确,在此之后立即结束程序,即可被判定为正解。 | ### 注意事项 - **每次进行输出时,请在末尾加上换行符并刷新(flush)标准输出。如果不这样做,评测结果可能会是 TLE(超时)。** - **如果在交互过程中进行了非法输出,或者程序中途结束,评测结果将是不确定的。** - 输出答案后请立即结束程序。如果不这样做,评测结果将是不确定的。 - 点的排列方式以及最终答案在你与评测程序开始交互时就已经固定,不会根据你提出的提问等发生改变(即非自适应交互)。 ### 数据范围 - $ 2 \leq N \leq 10^3 $ - $ N $ 为整数 由 Qwen3.7-Max 给出翻译。