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