<div>用于管理复杂几何图形层次结构并检查相交的类</div>

Kotlin Hard classes

任务 «<div>用于管理复杂几何图形层次结构并检查相交的类</div>»

创建用于表示几何图形的类:Point、Circle、Rectangle。Point 类包含 x 和 y 坐标(Double 类型)。Circle 类包含圆心(Point)和半径(Double)。Rectangle 类包含左上角(Point)和右下角(Point)。在每个类中实现方法 intersects(other: Any): Boolean,如果图形与另一个图形相交(圆与圆、矩形与矩形、圆与矩形),则返回 true。对于圆和矩形,使用从圆心到矩形最近点的距离进行检测。在 main() 中从 stdin 读取图形数量 N(1 ≤ N ≤ 100),然后对于每个图形读取一行:类型("Point"、"Circle"、"Rectangle")和坐标。对于 Point:x y。对于 Circle:x y r。对于 Rectangle:x1 y1 x2 y2。对于每对图形(i < j),按对编号升序输出相交检测结果:"YES" 或 "NO"。

输入格式

整数 N。随后 N 行,每行包含图形类型及其参数(Double 类型坐标)。

输出格式

对于每一对 (i, j),其中 i < j,按 i 递增的顺序输出 "YES" 或 "NO",然后按 j 递增的顺序输出。

示例

示例 1

输入
5 1 100 100 2 200 200 3 150 300 4 300 400 5 50 1500
输出
100 400 4 750 187 1500 1500 1 50 50

示例 2

输入
0
输出
main.kt