题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76
//C++代码
#include<iostream>
#include<algorithm>
using namespace std;
struct Point{
int x,y,id;
bool operator <(const Point a) const{
if(y==a.y) return x<a.x;
return y<a.y;
}
}p[1005];
int main(){
int n,i;
while(cin>>n,n){
for(i=1;i<=n;i++){
cin>>p[i].x>>p[i].y;
p[i].id=i;
}
sort(p+1,p+n+1);
cout<<p[1].id;
int num=p[1].y;
for(i=2;i<=n;i++){
if(p[i].x>num){
cout<<" "<<p[i].id;
num=p[i].y;
}
}
cout<<endl;
}
return 0;
}
本文提供了一个关于ZJU ACM 76题的C++代码解决方案。该程序通过读取输入坐标,使用自定义的数据结构Point来存储每个点的位置信息,并通过比较函数实现了基于y坐标优先级的排序。最终输出的是根据特定条件筛选后的点的ID。
869

被折叠的 条评论
为什么被折叠?



