http://poj.org/problem?id=1089
# include<iostream>
# include<algorithm>
using namespace std;
# define N 50003
# define M 1000003
struct INTERVAL
{
int s,e;
};
int cmp(INTERVAL a, INTERVAL b)
{
return a.s<b.s;
}
INTERVAL interval[N];
int main()
{
int n,i,s,e;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>interval[i].s>>interval[i].e;
}
sort(interval+1,interval+1+n,cmp); //根据起点排序
//for(i=1;i<=n;i++)
//{
// cout<<interval[i].s<<interval[i].e;
//}
s=interval[1].s;
e=interval[1].e;
for(i=2;i<=n;i++)
{
if(interval[i].s>e)
{
cout<<s<<" "<<e<<endl;
s=interval[i].s;
e=interval[i].e;
}
else
{
if(interval[i].e>e)
{
e=interval[i].e;
}
else
{
//do nothing
}
}
}
cout<<s<<" "<<e<<endl; //输出最后一个区间
return 0;
}