博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7620:区间合并
阅读量:7246 次
发布时间:2019-06-29

本文共 1110 字,大约阅读时间需要 3 分钟。

7620:区间合并

总时间限制:
1000ms
内存限制:
65536kB
描述

给定 n 个闭区间 [ai; bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以合并。

我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则输出no。

输入
第一行为一个整数n,3 ≤ n ≤ 50000。表示输入区间的数量。
之后n行,在第i行上(1 ≤ i ≤ n),为两个整数 ai 和 bi ,整数之间用一个空格分隔,表示区间 [ai; bi](其中 1 ≤ ai ≤ bi ≤ 10000)。
输出
输出一行,如果这些区间最终可以合并为一个闭区间,输出这个闭区间的左右边界,用单个空格隔开;否则输出 no。
样例输入
55 61 510 106 98 10
样例输出
1 10
来源
1 #include
2 #include
3 using namespace std; 4 int ansbegin=10000; 5 int ansend=-1; 6 int beginn[1000001]; 7 int endn[1000001]; 8 int flag[10000001]; 9 int main()10 {11 int n;12 cin>>n;13 for(int i=1;i<=n;i++)14 {15 cin>>beginn[i]>>endn[i];16 if(beginn[i]
ansend)19 ansend=endn[i];20 for(int j=beginn[i]*2;j<=endn[i]*2;j++)21 {22 flag[j]=1;23 }24 }25 for(int i=ansbegin*2;i<=ansend*2;i++)26 {27 if(flag[i]==0)28 {29 cout<<"no";30 return 0;31 }32 }33 cout<
<<' '<

 

转载地址:http://ejnbm.baihongyu.com/

你可能感兴趣的文章
C++ auto_ptr
查看>>
Alpha阶段项目展示
查看>>
zzz KVC/KVO原理详解及编程指南
查看>>
window对象
查看>>
IntelliJ IDEA配置Tomcat 与安装Tomcat失败原因
查看>>
详解Android属性动画
查看>>
【转】关于MySQL函数GROUP_CONCAT的使用
查看>>
正则表达式 处理选项
查看>>
【哈希】身份证问题
查看>>
接口、继承、多态
查看>>
推荐强大易用免费硬盘分区工具DiskGenius
查看>>
[系统资源]/proc/meminfo和free输出解释
查看>>
第20章 常见的Python网络应用
查看>>
PHP文件读写操作之文件写入代码
查看>>
Visual Studio 常用快捷键 (二)
查看>>
【sqlite】错误代码整理
查看>>
分号的问题
查看>>
django 增删改查操作 数据库Mysql
查看>>
Nginx快速入门
查看>>
LeetCode – Group Shifted Strings
查看>>