この課題は、特定のポイントを含む最小のディスクを見つけることです。ただし、この課題では、ディスクの座標と半径は両方とも整数でなければならないという事実により、これはやや複雑になります。
入力は、整数座標x
とを持つ点のリストになりy
ます。これは、タプルのリスト、リストのリスト、またはペアのコレクションを表す他の方法として使用できます。x
そして、y
両方とも(おそらく負の)整数になります。すべてのポイントは一意であることが保証されており、少なくとも1つのポイントがあります。
あなたの出力は、3つの数字の形でディスクになりX
、Y
とR
。X
、Y
およびR
すべての整数であり、X
およびY
ディスクの中心を表し、R
その半径を表します。与えられたすべての点と中心の間の距離はに等しいかそれ以下R
でなければならず、R
この条件を満たしているより小さいディスクが存在してはなりません。
特定の入力に対して複数の可能な解決策がある可能性がありますが、この場合、コードは少なくとも1つを出力する必要があります。
言語がサポートしている場合は、言語でサポートされているあらゆる種類のジオメトリビルトインを使用できます。入力/出力は、単なる数字ではなく、組み込みのポイント/ディスクオブジェクトを介して行われます。
テストケース
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)
少ないバイトが勝ちます。