SP2172 BALLIGHT - Ballroom Lights
题目描述
ICPC 世界总决赛将在一家豪华酒店的大宴会厅举行。主办方打算在宴会厅的墙壁上展示历届冠军队伍的照片。为了公平起见,委员会希望通过确保每张照片都能被妥善照明来避免偏袒。最直接的办法是保证每张照片至少有一个灯泡直接照到。
通过这种方式,宴会厅的墙壁周长可以分为照明区域(可以放置照片)和黑暗区域(不适合放置照片)。这个宴会厅是一个长方形的空间,内部装有多个灯泡。每个灯泡能向各个方向发光,但光线可能会被柱子阻挡。宴会厅中的柱子都是从地板延伸到天花板的圆柱形结构,因此光线不能从柱子上方或周围穿过。这些柱子的位置确保其圆形截面平行于地面。对于墙边的任意一点 $p$,如果有一条光线从灯泡发出,能够到达 $p$ 且不被任何柱子挡住,则认为该点为被照亮。
作为 ICPC 组织团队的一员,你的任务是查看宴会厅的平面图,计算出整个周墙被照亮部分的总长度。平面图是一个矩形,代表宴会厅的俯视图,其上标出了灯泡和柱子的位置。
输入格式
每组测试数据包括多行。第一行为四个整数:$L$ 为灯泡数量,$C$ 为柱子数量,$X$ 为宴会厅在 $x$ 轴方向的长度,$Y$ 为宴会厅在 $y$ 轴方向的长度。宴会厅的左下角位于 $(0, 0)$,右上角位于 $(X, Y)$。
接下来的 $L$ 行中,每行包含两个整数,表示每个灯泡的 $x$ 和 $y$ 坐标。接下来的 $C$ 行中,每行包含三个整数,表示每个柱子中心的 $x$ 坐标、$y$ 坐标和柱子的半径。可以假设 $1 \le L, C \le 10^3$ 且 $4 \le X, Y \le 10^6$。此外,所有坐标 $(x, y)$ 都满足 $0 < x < X$ 和 $0 < y < Y$,无论是灯泡还是柱子中心的位置。所有柱子的半径均为正数。没有两个柱子会重叠,尽管它们可能接触,也没有柱子与宴会厅的边界接触或相交。此外,灯泡不会位于任何柱子的内部或其边界上,且没有两个灯泡在同一地点。输入以 $L = C = X = Y = 0$ 结束。
输出格式
对于每组测试数据,输出周墙上被照亮部分的总长度。结果需要精确到小数点后四位,并进行适当的四舍五入。
**本翻译由 AI 自动生成**