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$。