如果有一对时间对在某一场馆有时间重合而这一对时间对在另一场馆没有时间重合,则输出NO,否则输出YES。

 #define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
vector<pair<pair<int,int>,pair<int,int> > >v1,v2;
int check(const vector<pair<pair<int,int>,pair<int,int> > >&v){//常引用,既提高了效率,也不会让参数在函数中被改动
multiset<int>l,r;//保留了某一场馆时间重合的场次下另一场馆的时间对。
for(int i=;i<v.size();++i){
pair<pair<int,int>,pair<int,int> >it=v[i];
pair<int,int>temp=it.first;
pair<int,int>temp2=it.second;
if(temp.second==){
l.erase(l.find(temp2.first));
r.erase(r.find(temp2.second));
}
else{
multiset<int>::iterator x=r.lower_bound(temp2.first);
if(x!=r.begin())//如果有比当前开始时间更小的结束时间,说明这一场馆可以有一对没有时间重合的时间对且另一场馆这一对时间重合。
return ;
multiset<int>::iterator y=l.upper_bound(temp2.second);
if(y!=l.end())//如果有比当前结束时间更大的开始时间,说明这一场馆可以有一对没有时间重合的时间对且另一场馆这一对时间重合。
return ;
l.insert(temp2.first);
r.insert(temp2.second);
}
}
return ;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
int a,b,c,d;
for(int i=;i<=n;++i){
cin>>a>>b>>c>>d;
v1.push_back(make_pair(make_pair(a,-),make_pair(c,d)));//相同的开始时间和结束时间要让开始时间排在前面,因为开始时间和结束时间相同的这一对是时间重合的,把开始时间的标记打得比结束时间小,可以保留更多A场馆重合的场次的B场馆的时间对。
v1.push_back(make_pair(make_pair(b,),make_pair(c,d)));
v2.push_back(make_pair(make_pair(c,-),make_pair(a,b)));
v2.push_back(make_pair(make_pair(d,),make_pair(a,b)));
}
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
if(!check(v1)||!check(v2))
cout<<"NO";
else
cout<<"YES";
return ;
}

最新文章

  1. 使用css3做钟表
  2. javascript平时小例子⑥(简易计算器的制作)
  3. Java实验报告五:Java网络编程及安全
  4. 使用NPOI操纵Excle,并输入到客户端
  5. HTML常见标签
  6. hdu 4008 树形dp
  7. 拉普拉斯特征图降维及其python实现
  8. javascript常用代码大全
  9. phpmyadmin登陆提示#2002 无法登录 MySQL 服务器和设置自增
  10. LINUX诞生
  11. 个人对现在大众对perl的偏见的一些见解
  12. Ninject之旅目录
  13. 【科普】什么是TLS1.3
  14. 关于.h .lib .dll的总结
  15. apache编译安装php后需要注意以下配置
  16. java 中的this
  17. CSS 标签实例一 homepage.css
  18. Md5 util
  19. BOM-使用定时器
  20. sql server单个字段列转行由,隔开

热门文章

  1. Keep、小红书、美图…独角兽App能拿到新一轮救命钱吗?
  2. Centos 修改yum源为aliyun
  3. 2019-08-17 纪中NOIP模拟B组
  4. CriteriaBuilder jpa 日期date查询
  5. msfconsole启动失败并报错`not_after=&#39;: bignum too big to convert into `long&#39;的解决方法
  6. ansible笔记(13):变量(二)
  7. LED Craft Light - How To Solve: Home Decoration Lighting
  8. Autocorrelation in Time Series Data
  9. 题解 P4289 【[HAOI2008]移动玩具】
  10. How to Create an OCM Response file to Apply a Patch in Silent Mode - opatch silent