Класс для управления сложной иерархией геометрических фигур с проверкой пересечений
Kotlin
Сложный
classes
Задача «Класс для управления сложной иерархией геометрических фигур с проверкой пересечений»
Создайте классы для представления геометрических фигур: 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 выведите "YES" или "NO" в порядке возрастания i, затем 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