202009(第一题)

#include<bits/stdc++.h>
//注意学会使用结构体和相应的排序,直接记录好相应的编号
//避免使用堆这种数据结构来减少时间复杂度,编起来太复杂 
using namespace std;
const int maxn =2005;
int n,x,y;
struct node{
    int id;
    double dis;
}pos[maxn];
double get(double x,double y,double xx,double yy){
    return (x-xx)*(x-xx) + (y -yy)*(y-yy);
}
bool cmp(node a,node b)
{
    return a.dis==b.dis? a.id<b.id:a.dis<b.dis;
    //先看一下二者的距离是否相等,如果相等的话,返回id小的,否则返回距离小的 
}
int main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n>>x>>y;
    for(int i=1,tx,ty;i<=n;i++)
    {
        cin>>tx>>ty;
        pos[i].id = i;
        pos[i].dis = get(tx,ty,x,y);
    }
    sort(pos+1,pos+n,cmp);
    for(int i=1;i<=3;++i)
    cout<<pos[i].id<<endl;
    return 0;
} 

 

posted @ 2020-09-20 18:05  zmachine  阅读(140)  评论(0编辑  收藏  举报