尋找奇怪的小龜

Posted on Thu, Nov 25, 2021 進階程設課程
#include <bits/stdc++.h>

using namespace std;

bool cmp1(pair<int,int> a,pair<int,int> b){
    return a.first<b.first;
}

bool cmp2(pair<int,int> a,pair<int,int> b){
    return a.second<b.second;
}

float distan(int x,int y){
    return pow((pow(x,2)+pow(y,2)),0.5);
}

int main()
{
    int N,maxpos,minpos;
    float maxn=-10e9,minn=10e9,dis;
    cin>>N;
    pair<int,int> p[N];
    for(int i=0;i<N;i++){
        cin>>p[i].first>>p[i].second;
        dis=distan(p[i].first,p[i].second);
        if(dis>=maxn){
            maxn=dis;
            maxpos=i;
        }
        if(dis<=minn){
            minn=dis;
            minpos=i;
        }
    }
    printf("最遠為第%d點:(%d,%d) 距離: %.2f\n",maxpos+1,p[maxpos].first,p[maxpos].second,maxn);
    printf("最遠為第%d點:(%d,%d) 距離: %.2f\n",minpos+1,p[minpos].first,p[minpos].second,minn);

    sort(p,p+N,cmp1);
    cout<<"x座標以小到大"<<endl;
    for(int i=0;i<N;i++){
        cout<<p[i].first<<" "<<p[i].second<<endl;
    }

    sort(p,p+N,cmp2);
    cout<<"y座標以小到大"<<endl;
    for(int i=0;i<N;i++){
        cout<<p[i].first<<" "<<p[i].second<<endl;
    }

    return 0;
}