#include<bits/stdc++.h>
using namespace std;
typedef struct point{
int node;
double d;
}point;
bool cmp(point a,point b)
{
if(a.d!=b.d)
return a.d<b.d;
if(a.node!=b.node)
return a.node<b.node;
}
int main()
{
int n,x_n,y_n;
cin>>n>>x_n>>y_n;
point p[n];
for(int i=0;i<n;i++)
{
double a,b;
cin>>a>>b;
p[i].d= sqrt( pow (x_n-a,2.0) + pow(y_n-b,2.0) );
p[i].node=i+1;
}
sort(p,p+n,cmp);
for(int i=0;i<3;i++)
{
cout<<p[i].node<<endl;
}
return 0;
}
- 小结:虽然是个水题,但值得注意的是sqrt与pow函数的返回值是double型,以及sort函数于qsort函数中cmp的区别。