Clase para gestionar una jerarquía compleja de figuras geométricas con verificación de intersecciones
Kotlin
Hard
classes
Tarea «Clase para gestionar una jerarquía compleja de figuras geométricas con verificación de intersecciones»
Cree clases para representar figuras geométricas: Point, Circle, Rectangle. La clase Point contiene coordenadas x e y (Double). La clase Circle contiene un centro (Point) y un radio (Double). La clase Rectangle contiene la esquina superior izquierda (Point) y la esquina inferior derecha (Point). Implemente en cada clase el método intersects(other: Any): Boolean, que devuelve true si la figura se intersecta con otra figura (círculo con círculo, rectángulo con rectángulo, círculo con rectángulo). Para el círculo y el rectángulo, use la verificación de la distancia desde el centro del círculo hasta el punto más cercano del rectángulo. En main() lea desde stdin la cantidad de figuras N (1 ≤ N ≤ 100), luego para cada figura una línea: tipo ("Point", "Circle", "Rectangle") y coordenadas. Para Point: x y. Para Circle: x y r. Para Rectangle: x1 y1 x2 y2. Para cada par de figuras (i < j) muestre el resultado de la verificación de intersección: "YES" o "NO" en orden creciente de pares.
Formato de entrada
Un número entero N. Luego N líneas, cada una contiene el tipo de figura y sus parámetros (coordenadas Double).
Formato de salida
Para cada par (i, j) con i < j, muestre "YES" o "NO" en orden creciente de i, luego j.
Ejemplos
Ejemplo 1
ENTRADA
5
1 100 100
2 200 200
3 150 300
4 300 400
5 50 1500
SALIDA
100 400 4 750 187
1500 1500 1 50 50
Ejemplo 2
ENTRADA
0
SALIDA
main.kt