CF1080F Katya and Segments Sets
题目描述
给你 $n$ 个集合,集合中的元素是线段,每个线段用左右端点 $[l,r],l\le r$ 描述。每个集合可以包含任意个线段(包括 $0$ 个),允许存在相同的线段。
有 $m$ 个询问,每个询问形如 $a,b,x,y$,问对于编号在 $[a,b]$ 之间的集合,是不是每一个都包含一个满足 $x\le l\le r\le y$ 的线段,是则输出 `yes`,否则输出 `no`。
输入格式
第一行包含 $3$ 个整数 $n,m,k(1\le n,m\le 10^5,1\le k\le 3×10^5)$ 分别表示集合数、询问数、线段个数。
接下来 $k$ 行每行 $3$ 个整数 $l,r,p(1\le l\le r\le 10^9,1\le p\le n)$ 表示一条线段,$l,r$ 为左右端点,$p$ 为它所属的集合。
接下来 $m$ 行,每行四个数 $a,b,x,y$,表示一个询问。
输出格式
对每个询问输出 `yes` 或 `no`,每个询问占一行。
每次输出后需要刷新输出缓存,否则会 TLE。
方法如下:
- C++: `fflush(stdout)` 或 `cout.flush()`。
- Java:`System.out.flush()`。
- Pascal:`flush(output)`。
- Python:`stdout.flush()`。
- 对于其他语言,请自行查阅对应语言的帮助文档。
说明/提示
第一个询问答案是 `no`,因为第二个集合不包含一个在 $[2,3]$ 之间的线段。
对于第二个询问,第一个集合包含 $[2,3]$,第二个集合包含 $[2,4]$。
对于第三个询问,第一个集合包含 $[2,3]$,第二个集合包含 $[2,4]$,第三个集合包含 $[2,5]$。
对于第四个询问,第二个集合不包含一个在 $[3,6]$ 之间的线段。
对于第五个询问,第二个集合包含 $[2,4]$,第三个集合包含 $[2,5]$,第四个集合包含 $[7,9]$。