from typing import List
from math import sqrt
from math import hypot
classSolution:defnumPoints(self, points: List[List[int]], r:int)->int:defdistance(a, b):return sqrt((a[0]-b[0])**2+(a[1]-b[1])**2)
J =lambda o:sum(distance(_, o)<= r for _ in points)
m =1for p1 in points:for p2 in points:if0< distance(p1, p2)<=2* r:
s =[(p1[0]+ p2[0])/2,(p1[1]+ p2[1])/2]
length = distance(p1, p2)
z = sqrt(r **2-(length/2)**2)
d_unit_vector =[(p1[1]- p2[1])/length,(p1[0]- p2[0])/length]# 单位向量
p =[s[0]+ d_unit_vector[0]* z, s[1]- d_unit_vector[1]* z]
m =max(m, J(p))return m
po =[[-3,0],[3,0],[2,6],[5,4],[0,9],[7,8]]
r =5
res = Solution().numPoints(po, r)print(res)