记录编号 373355 评测结果 AAAAAAAAA
题目名称 [POI 2001] 区间 最终得分 100
用户昵称 GravatarHeHe 是否通过 通过
代码语言 C++ 运行时间 0.020 s
提交时间 2017-02-20 20:02:53 内存使用 0.70 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
//#define LOCAL
#define is_num(tmp) (tmp<='9'&tmp>='0')
inline int in()
{
	char tmp(getchar());
	int res(0);
	while(!is_num(tmp))tmp=getchar();
	while(is_num(tmp))
		res=(res<<1)+(res<<3)+(tmp^48),
		tmp=getchar();
	return res;
}
struct node{
	int l,r;
	bool operator<(const node&a)const
	{
		if(l!=a.l)return l<a.l;
		return r<a.r;
	}
}s[50000];
void qsort(int l,int r)
{
	int i(l),j(r);
	node mid(s[l+r>>1]);
	node tmp;
	do{
		while(s[i]<mid)++i;
		while(mid<s[j])--j;
		if(i<=j)
		{
			tmp=s[i];
			s[i]=s[j];
			s[j]=tmp;
			++i,--j;
		}
	}while(i<=j);
	if(l<j)qsort(l,j);
	if(i<r)qsort(i,r);
	return ;
}
int N;
int main()
{
#ifndef LOCAL
	freopen("prz.in","r",stdin);
	freopen("prz.out","w",stdout);
#endif
	N=in();
	for(int i(0);i<N;++i)
		s[i].l=in(),s[i].r=in();
	qsort(0,N-1);
	for(int i(0);i<N;++i)
	{
		printf("%d ",s[i].l);
		int R(s[i].r);
		while(i<N-1&&R>=s[i+1].l)
		{
			if(s[i+1].r>R)
			{
				R=s[i+1].r;
			}
			++i;
		}
		printf("%d\n",R);
	}
}