题目
过程
难点:编号和位置的一一对应,不同位置的距离可能相等。
所以使用一个结构体记录不同检测点的编号和到居民地的距离。
sort函数进行排序。Sort函数使用方法
参考:http://t.csdnimg.cn/Y0Hpi
代码
#include <bits/stdc++.h>
using namespace std;
int n,X,Y;
struct Position{
int id;
int dis;
};
bool cmp(Position a,Position b)
{
if(a.dis==b.dis) return a.id<b.id;
else return a.dis<b.dis;
}
int main()
{
cin>>n>>X>>Y;
map<int,int>D;
Position p[n];
for(int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
p[i].dis=pow((X-x),2)+pow((Y-y),2);
p[i].id=i;
}
sort(p+1,p+n,cmp);
for(int i=1;i<=3;i++)
{
cout<<p[i].id<<endl;
}
return 0;
}