码迷,mamicode.com
首页 > 编程语言 > 详细

oj--点排序

时间:2017-09-18 22:19:51      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:sqrt   pre   struct   operator   排序   algorithm   can   i++   poi   

 

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct Point{
    int x,y;
    double d;
    double caldis(Point a){
        return sqrt((a.x-x)*(a.x-x)+(a.y-y)*(a.y-y));
    }
    bool operator < (const Point &a) const{
        if(d!=a.d)
            return d<a.d;
        else if(x!=a.x)
            return x<a.x;
        else return y<a.y;
    }
}point[105];

int main(){
    Point ori;
    scanf("%d %d",&ori.x,&ori.y);
    int n;
    scanf("%d",&n);
    int idx=0;
    int t=n;
    while(t--){
        scanf("%d %d",&point[idx].x,&point[idx].y);
        point[idx].d=point[idx].caldis(ori);
        idx++;
    }
    sort(point,point+n);
    for(int i=0;i<n;i++){
        if(i!=0)
            printf(", ");
        printf("(%d,%d)",point[i].x,point[i].y);
    }
    printf("\n");
    return 0;
} 

 

oj--点排序

标签:sqrt   pre   struct   operator   排序   algorithm   can   i++   poi   

原文地址:http://www.cnblogs.com/kprac/p/7544937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!