#P2057. 区间.填空题
区间.填空题
题目描述
给出 个区间,请合并所有重叠的区间,并把合并后的区间按升序输出。
注意:当且仅当 时,区间 [] 、[] 才是升序
输入格式
第一行只有一个数 ( ),代表区间数。
接下来 行有两个数 ,之间用一个空格隔开,分别表示区间 [,]的起始和结束 ( )
输出格式
计算出的所有区间,每行写一个区间,每行只有两个数,分别是区间起始和结束,之间用一个空格分开。记住必须是按升序输出。
样例
5
5 6
1 4
10 10
6 9
8 10
1 4
5 10
完善程序
#include<bits/stdc++.h>
using namespace std;
struct zone
{
int l,r;
}x[50005];
填空(1) cmp(zone i, zone j)
{
return i.l<j.l||(i.l==j.l&&i.r<j.r);
}
int n,R,L;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&x[i].l,&x[i].r);
sort(x+1,填空(2),填空(3));
x[填空(4)].l = 2000000; //这个地方很巧妙的
L = x[1].l;
R = x[1].r;
for(int i=填空(5);i<=n;i++)
{
if(x[i].l<=R)
R = 填空(6);
else
{
printf("%d %d\n",L,R);
L = 填空(7);
R = 填空(8);
}
}
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
填空(4):{{ input(4) }}
填空(5):{{ input(5) }}
填空(6):{{ input(6) }}
填空(7):{{ input(7) }}
填空(8):{{ input(8) }}