Ce défi consiste à trouver le plus petit disque contenant des points donnés. Ceci est rendu quelque peu plus délicat, cependant, par le fait que dans ce défi, les coordonnées et le rayon du disque doivent tous deux être des entiers.
Votre entrée sera une liste de points avec des coordonnées entières x
et y
. Vous pouvez prendre cela comme une liste de tuples, une liste de listes ou toute autre manière de représenter une collection de paires. x
et y
seront tous deux (éventuellement négatifs) des entiers. Chaque point est garanti unique et il y aura au moins un point.
Votre sortie sera un disque sous la forme de trois numéros, X
, Y
, et R
. X
,, Y
et R
sont tous des entiers, X
et Y
représentent le centre du disque et R
son rayon. La distance entre chaque point donné et le centre doit être inférieure ou égale à R
, et il ne doit pas exister un tel disque avec un plus petit R
qui remplisse également cette condition.
Il est possible qu'il y ait plusieurs solutions possibles pour une entrée donnée, votre code doit en sortir au moins une dans ce cas.
Vous pouvez utiliser n'importe quel type de géométrie intégré dans votre langage s'il en existe, et l'entrée / sortie peut se faire via des objets point / disque intégrés au lieu de simples nombres.
Cas de test
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)
Le moins d'octets gagne.