题目:

题目原文链接:http://codeforces.com/contest/845/problem/C

题意:现在我们有一个电视清单,有两个电视,电视清单上有每一个节目的开始时间和结束时间。

   电视不能接连不间断的播放,例如TV1播放完1-2点的节目后不能接着播放2-3点的电视,除非在TV2上播放,如果TV2也正在播放则不能播放完清单。

思路:

  1.对清单排序,让开始时间早的靠前,如果开始时间相同,结束时间早的靠前。

  2.如果TV1已经结束。就把这一个节目的结束时间赋给TV1,然后看下一个节目。

  3.如果TV1尚未结束,TV2已经结束。就把这一个节目的结束时间赋给TV2,然后看下一个节目。

  4.如果TV1、TV2都尚未结束。就输出NO,不再看下一个节目。

代码:

#include <bits\stdc++.h>
using namespace std; struct node{
int l;int r;
}a[]; bool cmp(node a,node b){
if(a.l == b.l) return a.r < b.r;
return a.l < b.l;
} int main(){
int n;
cin >> n;
for(int i = ;i < n; i++){
cin >> a[i].l >> a[i].r;
}
sort(a,a+n,cmp); //对清单排序,让开始时间早的靠前,如果开始时间相同,结束时间早的靠前。 int r1 = -,r2 = -; //初始化上一个节目结束的时间
for(int i = ;i < n; i++){
if(r1 < a[i].l){ //如果TV1已经结束。就把这一个节目的结束时间赋给TV1,然后看下一个节目。
r1 = a[i].r;
continue;
}
if(r2 < a[i].l){ //如果TV1尚未结束,TV2已经结束。就把这一个节目的结束时间赋给TV2,然后看下一个节目。
r2 = a[i].r;
continue;
}
cout << "NO" << endl;//如果TV1、TV2都尚未结束。就输出NO,不再看下一个节目。
return ;
} cout << "YES" << endl;
return ;
}

最新文章

  1. c++11的右值引用、移动语义
  2. spring中schedule注解的使用
  3. Zookeeper相关知识
  4. hdu-5597 GTW likes function(欧拉函数+找规律)
  5. CKRule BRMS-决策表使用说明
  6. Python新手学习基础之运算符——成员运算与身份运算
  7. tomcat异常
  8. Android自动化测试框架新书:交流
  9. Textarea自适应高度 JS实现,兼容IE6\7\8\9\10\11
  10. Vue(day1)
  11. 【React】学习之道
  12. java数据结构面试问题—快慢指针问题
  13. 【Linux基础】VM使用
  14. 洛谷 P2527 [SHOI2001]Panda的烦恼 解题报告
  15. 这个代码给所有带有name属性的链接加了一个背景色
  16. 对mysql性能影响的几个重要参数---高性能(七)
  17. (3)socket的基础使用(基于UDP协议)
  18. onkeydown事件
  19. 二十七 Python分布式爬虫打造搜索引擎Scrapy精讲—通过自定义中间件全局随机更换代理IP
  20. 使用John the ripper工具来尝试破解Linux密码

热门文章

  1. css3子级高度与父级同高,内容垂直居中
  2. CentOS 5/6 下添加epel源
  3. [oracle] 组织架构退格显示 connect by
  4. 【工作细节记录】维护项目中前端JS组件丢失后,应如何维护开发之启发
  5. 谁说NTFS不支持UEFI启动的?启动U盘放不了超过4G的文件怎么办?Server2016 Win10 U盘UEFI启动制作方法
  6. C语言基本语法——数组
  7. Vue学习之路第五篇:v-bind
  8. [LUOGU]3919 【模板】可持久化数组
  9. u-boot启动代码start.S详解360
  10. Linux配置nignx虚拟主机