ybt 1236 区间合并

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
struct number{
	int x,y;
}stu[50020];
int cmp(number x1,number x2){
	return x1.x<x2.x||x1.x==x2.x&&x1.y<x2.y;
}
int main() {
    int i,n,count=0;
    i=0;
    scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&stu[i].x,&stu[i].y);
	}
	sort(stu,stu+n,cmp);
	int w=stu[0].y;//因为是区间判断能否合并所以只需要将左侧排序 不需要求出最少区间
		for(i=1;i<n;i++){
		if(stu[i].x>w){//第一组右区间与第二组数左区间表示两个区间没有交集
		printf("no");
		return 0;
	}
		if(stu[i].y>w)//已经排除没有交集的情况,将区间的右侧存入w,以便后面遍历使用
			w=stu[i].y;}
	printf("%d %d",stu[0].x,w);
    return 0;
}

 

posted @ 2022-04-24 22:04  半喜  阅读(58)  评论(0)    收藏  举报