csp称检测点查询

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

struct Point{
    int number;
    int dd;
    Point(int nn,int ddd):number(nn),dd(ddd){}
}; 
bool cmp(const Point &s,const Point &ss)
{
       if(ss.dd==s.dd)
         return s.number<ss.number;
       else
         return s.dd<ss.dd;
    
}
int CalcDistance(int x1, int y1, int x2, int y2)
{
    return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
}

int main()
{
    int n,x,y;
    cin>>n>>x>>y;
    vector<Point>v;
    int xx,yy;
    for(int i=0;i<n;i++)
    {
        
        cin>>xx>>yy; 
        int dis=CalcDistance(x,y,xx,yy);
        v.push_back(Point(i+1,dis));
        
    }
    sort(v.begin(),v.end(),cmp);
    for (int i = 0; i < 3; i++) {
        cout << v[i].number << endl;
    }
    return 0;
    
    
    ///从近到远,依次输出距离该市民最近的三个检测点编号 
}

 

posted @ 2021-04-06 13:33  Tomorrow1126  阅读(47)  评论(0编辑  收藏  举报