简单的vector加sort排序,其中排序规则需要重写
#include<bits/stdc++.h>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
int i;
int x;
int y;
int d;
};
bool cmp(node x,node y){
if(x.d==y.d){
return x.i<y.i;//记得说明当距离相同时,应该怎么办,要不然只会得60分
}
return x.d<y.d;
}
int main()
{
int n;
cin>>n;
int x,y;
cin>>x>>y;
vector<node> v;
for(int i=1;i<=n;i++){
node temp;
cin>>temp.x>>temp.y;
temp.i=i;
temp.d=(temp.y-y)*(temp.y-y)+(temp.x-x)*(temp.x-x);
v.push_back(temp);
}
sort(v.begin(),v.end(),cmp);
for(int i=0;i<3;i++){
cout<<v[i].i<<endl;
}
return 0;
}