output_description: Print the minimum radius of a circle such that all the N points are inside or
  on it.
  
  Your output will be considered correct if the absolute or relative error from
  our answer is at most 10^{-6}.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      x_1 y_1
      :
      x_N y_N
attempt: import sys
  import numpy as np
  
  sr = lambda: sys.stdin.readline().rstrip()
  ir = lambda: int(sr())
  lr = lambda: list(map(int, sr().split()))
  
  N = ir()
  XY = np.array([lr() for _ in range(N)])
  X = XY[:, 0]
  Y = XY[:, 1]
  # 円の中心
  cen_X = (X.max() + X.min()) / 2
  cen_Y = (Y.max() + Y.min()) / 2
  
  
  # 2分探索
  def check(R):
      bool = True
      for x, y in XY:
          if (cen_X - x) ** 2 + (cen_Y - y) ** 2 > R**2:
              bool = False
      return bool
  
  
  left = 0  # NG
  right = 1000  # OK
  while right > left + 0.0000000001:
      mid = (left + right) / 2
      if check(mid):
          right = mid
      else:
          left = mid
  
  print(right)
  # 18
  
problem_description: Statement
  
  Given are N points (x_i, y_i) in a two-dimensional plane.
  
  Find the minimum radius of a circle such that all the points are inside or on
  it.
samples: [{"input": "2\n    0 0\n    1 0", "output": "0.500000000000000000\n    \n\nBoth points are contained in the circle centered at (0.5,0) with a radius of\n0.5.\n\n* * *"}, {"input": "3\n    0 0\n    0 1\n    1 0", "output": "0.707106781186497524\n    \n\n* * *"}, {"input": "10\n    10 9\n    5 9\n    2 0\n    0 0\n    2 7\n    3 3\n    2 5\n    10 0\n    3 7\n    1 9", "output": "6.726812023536805158\n    \n\nIf the absolute or relative error from our answer is at most 10^{-6}, the\noutput will be considered correct."}]