#include<iostream>
#include<algorithm>
using namespace std;
struct m{
int id;
int dd;
}bp[2001];
bool cmp(m a,m b){
if(a.dd==b.dd) return a.id<b.id;
return a.dd<b.dd;
}
int main(){
int n,x,y;
cin>>n>>x>>y;
for(int i=0;i<n;i++){
int m,n;
cin>>m>>n;
m=abs(x-m);
n=abs(y-n);
bp[i].id=i+1;
bp[i].dd=m*m+n*n;
}
sort(bp,bp+n,cmp);
for(int i=0;i<3;i++){
cout<<bp[i].id<<endl;
}
}

该程序实现了对一组坐标点按照到指定点(x, y)的欧氏距离进行排序的功能。首先读取点的数量及坐标,然后计算每个点的欧氏距离,并以结构体存储。通过自定义比较函数对距离进行排序,最后输出最近的三个点的ID。
580

被折叠的 条评论
为什么被折叠?



