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]$。