#P17373. [ECNA 2023] Forest for the Trees
[ECNA 2023] Forest for the Trees
题目描述
你派出一台机器人进入森林,但它迷路了。机器人装有传感器,无论树木之间是否互相遮挡,都能探测到周围的所有树。遗憾的是,这片森林里的树全都长得一样。
你有一张森林地图,所有树木都表示为平面上的点 。这里过去是一座林场,因此所有树都位于整数坐标处,不过并非每个整数坐标上都有树。
机器人的传感器会以机器人正面所朝方向为基准,给出探测范围内每棵树在两个方向上的距离。然而,机器人相对于地图的朝向未知。因此,每条传感器读数都是一个二元组:
由于机器人能够探测所有方向,这两个值都可能为负数。
幸运的是,机器人一定停在整数坐标处,朝向也一定与全局坐标系的 轴或 轴正方向或负方向对齐,并且机器人绝不会与某棵树处于同一位置。你能确定机器人的位置吗?
输入格式
第一行包含三个整数:森林中的树木数量 、机器人探测到的树木数量 ,以及任意传感器读数的最大曼哈顿距离 。这里曼哈顿距离是横向距离与纵向距离的绝对值之和。
接下来 行,每行包含两个整数,表示全局坐标系中一棵树的位置 。
最后 行,每行包含两个整数。第 条传感器读数中的第一个整数 ,表示沿垂直于机器人朝向的轴到该树的距离;第二个整数 ,表示沿平行于机器人朝向的轴到该树的距离。
保证对所有 都有
数据范围如下:
$$0<n_t\le 5000,\qquad 0<n_s\le 1000,\qquad 0<r_{max}\le 1000,$$且所有树木坐标均满足 。
输出格式
输出以下三种结果之一:
- 如果恰能确定机器人的位置与朝向,则输出机器人的坐标 ,两个整数之间以一个空格分隔;
- 如果地图上不存在任何能够产生这些传感器读数的位置与朝向,输出
Impossible; - 如果有至少两种不同的位置和/或朝向能够产生这些传感器读数,输出
Ambiguous。
4 4 100
1 1
2 2
2 1
3 3
0 1
0 2
-1 2
-2 3
0 1