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 给出翻译。