Buggy python submission (verdict: Runtime Error):
import sys

read = sys.stdin.buffer.read
input = sys.stdin.buffer.readline
inputs = sys.stdin.buffer.readlines


#mod=10**9+7
# rstrip().decode('utf-8')
# map(int,input().split())
#import numpy as np

from scipy.optimize import fmin



def main():
	n = int(input())
	xy = [list(map(int, input().split())) for _ in [0] * n]
	def calc(k):
		i, j = k
		ans = 0
		for x, y in xy:
			ans = max(ans, (x - i) ** 2 + (y - j) ** 2)
		return ans

	x, y = fmin(calc, [500, 500], disp=0)
	print(calc((x, y)) ** 0.5)



if __name__ == "__main__":
	main()


Fixed submission:
import sys

read = sys.stdin.buffer.read
input = sys.stdin.buffer.readline
inputs = sys.stdin.buffer.readlines


#mod=10**9+7
# rstrip().decode('utf-8')
# map(int,input().split())
#import numpy as np


def main():
	n=int(input())
	x=[]
	y=[]
	for _ in range(n):
		xin,yin=map(int,input().split())
		x.append(xin)
		y.append(yin)
	
	li=[[0]*n for _ in range(n)]
	
	for i in range(n):
		for j in range(n):
			if i>j:
				li[i][j]=((x[i]+x[j])/2,(y[i]+y[j])/2,(((x[j]-x[i])**2)+(y[j]-y[i])**2)**0.5)
				li[j][i]=(-(y[j]-y[i]),(x[j]-x[i]))
	l=0
	h=1000
	
	
	for ii in range(100):
		m=(l+h)/2
		ko=[]
		for i in range(n):
			for j in range(n):
				if i>j:
					k=4*(m**2)-(li[i][j][2])**2
					if k>0:
						k=k/(4*(li[i][j][2])**2)
						k=k**0.5
						ko.append((li[i][j][0]+k*li[j][i][0],li[i][j][1]+k*li[j][i][1]))
						ko.append((li[i][j][0] - k * li[j][i][0], li[i][j][1] - k * li[j][i][1]))
		if len(ko)==0:
			l=m
			continue
		
		for point in ko:
			f=0
			for i in range(n):
				length=((point[0]-x[i])**2+(point[1]-y[i])**2)**0.5
				if length-0.0000000000001>m:
					f=1
					break
			if f==0:
				h=m
				break
		else:
			l=m
		
		
	print(l)
	
		
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	


if __name__ == "__main__":
	main()

Buggy python submission (verdict: Runtime Error):
from scipy.optimize import fmin

def calc(k):
	i, j = k
	ans = 0
	for x, y in xy:
		ans = max(ans, (x-i)**2+(y-j)**2)
	return ans



def main():
    n = int(input())
    xy = [list(map(int, input().split())) for _ in [0]*n]
    x, y = fmin(calc, [500, 500], disp=0)
    print(calc((x, y))**0.5)


main()


Fixed submission:
import sys

read = sys.stdin.buffer.read
input = sys.stdin.buffer.readline
inputs = sys.stdin.buffer.readlines


#mod=10**9+7
# rstrip().decode('utf-8')
# map(int,input().split())
#import numpy as np


def main():
	n=int(input())
	x=[]
	y=[]
	for _ in range(n):
		xin,yin=map(int,input().split())
		x.append(xin)
		y.append(yin)
	
	li=[[0]*n for _ in range(n)]
	
	for i in range(n):
		for j in range(n):
			if i>j:
				li[i][j]=((x[i]+x[j])/2,(y[i]+y[j])/2,(((x[j]-x[i])**2)+(y[j]-y[i])**2)**0.5)
				li[j][i]=(-(y[j]-y[i]),(x[j]-x[i]))
	l=0
	h=1000
	
	
	for ii in range(100):
		m=(l+h)/2
		ko=[]
		for i in range(n):
			for j in range(n):
				if i>j:
					k=4*(m**2)-(li[i][j][2])**2
					if k>0:
						k=k/(4*(li[i][j][2])**2)
						k=k**0.5
						ko.append((li[i][j][0]+k*li[j][i][0],li[i][j][1]+k*li[j][i][1]))
						ko.append((li[i][j][0] - k * li[j][i][0], li[i][j][1] - k * li[j][i][1]))
		if len(ko)==0:
			l=m
			continue
		
		for point in ko:
			f=0
			for i in range(n):
				length=((point[0]-x[i])**2+(point[1]-y[i])**2)**0.5
				if length-0.0000000000001>m:
					f=1
					break
			if f==0:
				h=m
				break
		else:
			l=m
		
		
	print(l)
	
		
		
		
		
		
		
		
		
		
	
	
	
	
	
	
	
	


if __name__ == "__main__":
	main()