给定一条直线到一个多边形的距离,定义为多边形上的任意点到该直线的最小距离(多边形包含其边界及其内部)。该多边形不一定是凸多边形,且可以有多个顶点,其边界也可能存在自交。
编写一个程序:
- 从标准输入读取多边形的描述以及若干条直线的描述;
- 对于每一条直线,计算该直线到多边形的距离;
- 将结果写入标准输出。
输入格式
标准输入的第一行包含两个整数 $n$ 和 $m$ ($3 \le n \le 50\,000$, $1 \le m \le 50\,000$),由一个空格分隔,分别表示多边形的边数和需要分析的直线数量。接下来的 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$ ($-10^9 \le x_i, y_i \le 10^9$),由一个空格分隔,表示多边形第 $i$ 个顶点的坐标。连续的顶点对,以及第一个和最后一个顶点,定义了多边形的边。接下来的 $m$ 行,每行包含三个整数 $A_i$、$B_i$ 和 $C_i$ ($-10^9 \le A_i, B_i, C_i \le 10^9$, $A_i^2 + B_i^2 > 0$),由空格分隔,表示由方程 $A_ix + B_iy + C_i = 0$ 定义的直线。
输出格式
程序应向标准输出打印 $m$ 行。第 $i$ 行应包含第 $i$ 条直线与多边形之间距离的平方,以既约分数形式输出,分子和分母之间用 / 符号分隔。
样例
输入 1
8 2 2 1 6 1 6 2 3 2 3 5 5 5 5 7 2 7 1 1 -2 1 0 -6
输出 1
1/2 0/1