Задача состоит в том, чтобы найти самый маленький диск, содержащий несколько заданных точек. Однако это несколько усложняется тем, что в этой задаче координаты и радиус диска должны быть целыми числами.
Ваш ввод будет список точек с целочисленными координатами x
и y
. Вы можете принять это как список кортежей, список списков или любой другой способ представления коллекции пар. x
и y
оба будут (возможно, отрицательными) целыми числами. Каждая точка гарантированно уникальна, и будет хотя бы одна точка.
Ваш выход будет диск в виде трех чисел, X
, Y
, и R
. X
,, Y
и R
все целые числа, X
и Y
представляют центр диска и R
представляет его радиус. Расстояние между каждой данной точкой и центром должно быть меньше или равно R
, и не должно быть такого диска с меньшим, R
который также удовлетворяет этому условию.
Возможно, что для данного ввода будет несколько возможных решений, в этом случае ваш код должен вывести хотя бы одно из них.
Вы можете использовать любые виды геометрии, которые поддерживает ваш язык, если они есть, и ввод / вывод может осуществляться через встроенные точечные / дисковые объекты, а не только числа.
Тестовые случаи
Input (Possible) Output(s)
(x,y) (X,Y,R)
-------------------------
(0,0) (0,0,0)
-------------------------
(0,1) (0,0,1)
(1,0) (1,1,1)
-------------------------
(1,4) (4,4,3)
(3,2)
(4,1)
(4,5)
(5,2)
(7,4)
-------------------------
(-1,0) (0,0,2)
(2,0) (1,0,2)
-------------------------
(-1,0) (1,0,2)
(2,1) (0,1,2)
-------------------------
(0,0) (1,0,1)
(1,1) (0,1,1)
Побеждает несколько байтов.