CF1423E 5G Antenna Towers
题目描述
给定平面上 $n$ 个**互不相交**的多边形,编号从 $0$ 到 $n-1$。每组询问给出一个圆的圆心坐标和半径,要求回答与这个圆相交(一个点也算)的所有多边形的面积之和及它们的编号。
输入格式
第一行三个数,两个浮点数 $width,height$, 表示平面的宽和高。一个整数 $n$ 表示多边形的数量。
接下来 $n$ 行,每行是一个多边形的信息,第$i\ (0\leq i\leq n-1)$行包含了编号为 $i$ 的多边形的信息。每行第一个整数 $v\ (3\leq v\leq40)$ 表示多边形的点数,接下来 $2\times v$ 个浮点数,每两个数 $(x,y)$ 代表多边形的一个点的坐标,将按**逆时针**的顺序给出。
接下来一行,输入一个整数 $q$ ,表示询问的个数。
接下来 $q$ 行,每行是一个圆的信息。前两个浮点数 $(x,y)$ 代表圆心的坐标,第三个浮点数 $r$ 代表半径。
保证 $1\leq n\times q\leq 10^6$。
输出格式
对于每一组询问,输出一行。输出一个浮点数代表与这个圆相交(一个点也算)的所有多边形的面积之和。接下来输出一个整数,代表多边形的个数,接下来按任意顺序输出若干个整数,代表它们的编号。
所有数字之间以一个空格分开,你的答案应该与标准答案之差小于 $10^{-4}$。
说明/提示
对于样例,易知多边形 $0,1,2$ 的面积分别为 $1,0.5,0.25$。对于第二组询问,圆与多边形 $0,1$ 相交,因此面积之和为 $1+0.5=1.5$。