历年题解 CCF CSP历年题解(python)
样例输入:
3 2 2
2 2
2 3
2 4
5 0 1
-1 0
0 0
1 0
0 2
-1 2
题目链接: 202009-1称检测点查询
问题分析:
按编号从小到大求距离,按[编号,距离]的方式存入列表l中,因需输出三个最近监测点编号,则遍历列表l,距离小于之前则替换,输出其最小距离编号,然后删除该检测点
满分例程:
import math
n,X,Y=map(int,input().split())
l=[]
for i in range(1,n+1):
x,y=map(int,input().split())
l.append([i,math.sqrt((X-x)*(X-x)+(Y-y)*(Y-y))])
for i in range(3):
mc=0#记录最小距离索引
mv=2003#记录最小距离
for c,v in l:
if v<mv:
mc=c
mv=v
print(mc)
l.remove([mc,mv])