1 solutions
-
0
#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