题目
过程
难点:编号和位置的一一对应,不同位置的距离可能相等。
所以使用一个结构体记录不同检测点的编号和到居民地的距离。
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;}