1 solutions

  • 0
    @ 2025-11-1 14:02:53
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int a[N][N],b[N][2];
    int main()
    {
        int n;
        cin>>n;
        int maxx=0,maxy=0;
        for(int i=1;i<=n;i++) //枚举每个点且得到最远的x和y 
        {
            int x,y;
            cin>>x>>y;
            a[x][y]=1;
            maxx=max(maxx,x);
            maxy=max(maxy,y);
        }
        int t=0,m=0; //m是已有的最大y 
        for(int i=maxx;i>=0;i--) //枚举x 
        {
            for(int j=maxy;j>m;j--) //枚举y 
            {
                if(a[i][j]==1) //极大值存在 
                {
                    b[t][0]=i; //记录坐标 
                    b[t][1]=j;
                    m=j; //更新y 
                    t++; //增加点的个数 
                }
            }
        }
        for(int i=t-1;i>=0;i--) //按照要求输出 
            if(i==t-1) printf("(%d,%d)",b[i][0],b[i][1]);
            else printf(",(%d,%d)",b[i][0],b[i][1]);
        return 0; 
    }
    
    • 1

    Information

    ID
    258
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    10
    Accepted
    8
    Uploaded By