bzoj#P2511. [2011福建集训] 信心题

[2011福建集训] 信心题

题目描述

给定一个 NN 个顶点的凸多边形,多边形可能有多个点在一条直线上。 给定 MM 条直线,对于每条直线,问这条直线将多边形划分成的两个区域中,面积较小的那个区域的面积。

输入格式

11 行包含一个正整数 NN ,表示了多边形顶点数。 接下来 NN 行,每行两个绝对值不超过 1000010000 的整数 x,yx , y,按顺时针或者逆时针顺序给出了多边形每个顶点坐标。 第 N+2N + 2 行包含一个正整数 MM,表示了询问直线的个数。 接下来 MM 行,每行 44 个绝对值不超过 1000010000 的整数 x1x_{1} ,y1 y_{1} ,x2 x_{2} ,y2 y_{2} ,表示了询问直线过 (x1,y1)(x_{1} , y_{1}) ,(x2 (x_{2} ,y2) y_{2}) 两点,并保证了 (x1,y1)(x2(x_{1} , y_{1}) ≠ (x_{2} ,y2) y_{2}) 。若直线将凸多边形划分成两部分,则输出较小那部分的面积,否则输出 00

输出格式

应包含 MM 行,对于每条直线输出对应结果,保留44 位小数。

5
0 0
0 5
0 10
10 10
10 0
4
0 0 10 10
9 10 10 9
10 -1 12 11
10 10 0 5
50.0000
0.5000
0.0000
25.0000

提示

对于 100%100\% 的数据,有 N,M50000N , M \leq 50000 。 保留小数点后 66 位或以上,SPJ 检查精度为小数点后 44

题目来源

2011福建集训 Jason , Hsiao 提供 SPJ