#P17009. [SGU500] Circular Island
[SGU500] Circular Island
题目描述
有一座半径为 、圆心位于 的圆形岛屿。岛上居住着两个部落:Java 和 Seeplusplus。两个部落领地之间的边界是一条直线。
你知道若干个 Java 村庄与 Seeplusplus 村庄的坐标。每个村庄都必须位于所属部落的领地内或边界上,并保证至少存在一条直线能够把两个部落的所有已知村庄分隔开。
对于所有满足条件的分界直线,求 Java 部落领地面积可能取得的最小值和最大值。
输入格式
第一行一个整数 ,表示岛屿半径,。
第二行一个整数 ,表示 Java 村庄数量,。
接下来 行,每行两个整数 ,表示一个 Java 村庄的坐标。
随后一行一个整数 ,表示 Seeplusplus 村庄数量,。
接下来 行,每行两个整数 ,表示一个 Seeplusplus 村庄的坐标。
所有村庄都在圆内,并且到圆周的距离至少为 ;任意两个村庄坐标不同。保证输入合法,即至少存在一条直线能分隔两类村庄。
输出格式
输出两个实数,以空格分隔,依次表示 Java 领地面积的最小值与最大值。
若相对误差不超过 ,则认为正确。
样例
6
2
3 4
-3 4
1
0 0
12.389928320447176 56.548667764616276