查询距离自己最近的三个核酸检测点
#某市设有 n个核酸检测点,编号从1到 n,其中 i号检测点的位置可以表示为一个平面整数坐标 (x,y)
#为方便预约核酸检测,请根据市民所在位置 (X,Y),查询距其最近的三个检测点。
#多个检测点距离相同时,编号较小的视为更近。
#20200901
#称检测点查询
#某市设有 n个核酸检测点,编号从1到 n,其中 i号检测点的位置可以表示为一个平面整数坐标 (x,y)
#为方便预约核酸检测,请根据市民所在位置 (X,Y),查询距其最近的三个检测点。
#多个检测点距离相同时,编号较小的视为更近。
#错误原因:直接排序取最小值,第二小、第三小时,重复距离可能出现选择重复点
nXY = input().split()
n = int(nXY[0])
X = int(nXY[1])
Y = int(nXY[2])
axis = []
for i in range(n):
xy = input().split()
xy = [int(j) for j in xy]
axis.append(xy)
dis = []
for i in range(n):
distance = (X-axis[i][0])**2 + (Y-axis[i][1])**2 #求取距离,可以不用开平方根,不影响大小的比较
dis.append(distance)
dis_sort = dis
for i in range(3):
min_dis = min(dis_sort) #找到最小值
min_index = dis.index(min_dis)
dis_sort[min_index] = max(dis)+1 #将最小值变为最大值+1,去除再次被选的可能
print((min_index+1))