#P5861. [IOI2015] teams

[IOI2015] teams

题目描述

班里有 NN 个学生,他们的编号为从 00N1N-1。每天,老师都有一些项目需要学生去完成。每个项目都需要由一组学生在一天内完成。项目的难度可能不同。对于每个项目,老师知道应该选择由多少学生组成的小组去完成。

不同的学生对小组的规模有不同的喜好。更准确地说, 对学生 ii 而言, 他只愿意在小组规模介于 A[i]A[i]B[i]B[i] 之间(含 A[i]A[i]B[i]B[i])的小组工作。每一天,一个学生最多只能被分配到一个小组工作。有些学生可能未被分配到任何小组中。每个小组只负责一个项目。

老师已选择好接下来 QQ 天中每一天的项目。对于每一天, 现需要判断是否有一种分配学生的方案,使得每个项目都有一个小组负责。

输入格式

  • 11 行有一个正整数 NN,表示班内学生的数量;
  • 22N+1N+1 行有两个 A[i]A[i]B[i]B[i]
  • N+2N+2 行有一个正整数 QQ
  • N+3N+3N+Q+2N+Q+2 行,包含一个正整数 MM,表示当天要完成的项目数, 后有一个长度为 MM 的序列 KKK[i]K[i]1iM1\le i\le M) 表示项目 ii 所需的小组规模。

输出格式

QQ 行,对于每一个问题, 你的程序必须输出是否存在一种小组分配的方案,可以完成当天的所有项目。若可以完成分组去完成当天所有的项目,输出 1, 否则,应输出 0

4
2 4
1 2
2 3
2 3
2
2 1 3
2 1 1
1
0

提示

对于 100%100\% 的数据,1N5×1051\le N\le 5 \times 10^51Q2×1051\le Q\le 2 \times 10^5M2×105\sum M \leq 2\times 10^5