luogu#P11193. [COTS/CETS 2021] 虫 Kukac
[COTS/CETS 2021] 虫 Kukac
题目背景
译自 Izborne Pripreme 2021 (Croatian IOI/CEOI Team Selection) D1T2。。
众所周知,昆虫只对顺逆时针方向有感觉。
由于没有 std,不保证 SPJ 正确性。如果怀疑 SPJ 有误,请联系搬题人。SPJ 代码。
题目描述
这是一道交互题。
二维平面上有一个 个点的多边形 。注意 不一定是凸的(它可以是凹包)。我们将多边形上的点依次编号为 。
此外,还有一个额外的点 。试通过交互来确定它是否在 内部。
保证多边形的线段不交。保证这 个点两两不同。保证无三点共线。
定义: 逆时针排列当且仅当从 看向 时, 在直线 左侧。如左图。
【实现细节】
交互开始前,需要读入一行两个整数 ,表示多边形点数,和允许的最大询问数。
接下来,你的程序通过标准输入输出流与交互库交互。以下是允许的询问:
-
:询问点 是否逆时针排列。必须保证 两两不同,且 。
如果 逆时针排列,回答为 ;否则回答为 。
确定答案后,按照以下格式回答:
- :如果 ,则代表 号点在多边形内部; 代表 号点不在多边形内部。
每次输出后,别忘了刷新缓冲区。如:std::cout.flush()
。
输入格式
见【实现细节】。
输出格式
见【实现细节】。
5 125
1
1
0
0
? 1 2 3
? 0 4 1
? 2 5 4
? 0 1 5
! 0
提示
样例解释
数据范围
对于 的数据,保证 。
再次提醒,多边形不一定是凸的。保证多边形的线段不交。保证这 个点两两不同。保证无三点共线。
子任务编号 | 特殊性质 | 得分 | ||
---|---|---|---|---|
有 | ||||
无 | ||||
特殊性质: 是凸的。