4837: Bear and Chemistry

内存限制:256 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

F. Bear and Chemistry
time limit per test
6 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
利马克是一只聪明的棕熊,他喜欢化学、反应和元素的转化。

在Bearland(Limak的家)有n种元素,编号为1到n,还有一些特殊的机器,可以转化元素。每台机器由两个整数ai,bi描述,代表两个元素,不一定是不同的。人们可以用一台机器将一个元素ai转化为bi,或者将bi转化为ai。Bearland中的机器并不十分耐看,每台机器最多只能使用一次。有可能ai=bi,许多机器都有相同的一对ai,bi。

Radewoosh是Limak最大的敌人和对手。他想在化学方面测试利马克。他们将在明天见面,他们都将带来他们所有的机器。利马克有很多机器,但他对他的敌人不甚了解。他们同意Radewoosh选择两种不同的元素,让我们把它们表示为x和y。Limak将被允许使用他和Radewoosh的机器。他可以使用0台或更多(甚至可能是全部)机器来实现目标,每台机器最多使用一次。利马克将从一个元素x开始,他的任务是首先得到一个元素y,然后再次得到一个元素x--然后我们说他成功了。之后Radewoosh会同意Limak知道化学知识(Radewoosh也会离开)。

Radewoosh喜欢一些特定的非空的喜欢的元素集合,他将从这个集合中选择x,y。利马克不知道究竟哪些元素在这个集合中,同时他也不知道拉德沃什有什么机器。不过,Limak已经听到了q个流言(询问),每个流言都包括Radewoosh的机器和最喜欢的元素。对于每个流言蜚语,Limak想知道对于从最喜欢的元素集合中选出的每一对x,y,他明天是否能够成功。如果是,则打印 "YES"(不带引号)。但如果从给定的集合中存在一对(x,y),Limak不能成功,那么你应该打印 "NO"(不含引号)。

输入
第一行包含三个整数n、m和q(1≤n,q≤300000,0≤m≤300000)--分别是元素的数量、Limak机器的数量和流言的数量。

接下来的m行中的每一行包含两个整数ai和bi(1≤ai,bi≤n),描述Limak的一台机器。

然后,接下来是对q个八卦者的描述。

第i个八卦的第一行描述包含两个整数ni和mi(1≤ni≤300000,0≤mi≤300000)。第二行包含ni个不同的整数xi,1,xi,2,...,xi,ni(1≤xi,j≤n)--Radewoosh在第i个八卦中最喜欢的元素。注意,ni=1是允许的,在这种情况下,没有成对的不同元素,所以Limak自动获胜(答案是 "YES")。然后是mi行,每行包含两个整数ai,j,bi,j(1≤ai,j,bi,j),描述第i个八卦中Radewoosh的一个机器。

所有流言蜚语的ni之和不会超过300000。另外,所有流言蜚语的mi之和也不会超过300000。

重要提示:因为我们希望你能在线处理八卦,为了知道Radewoosh最喜欢的集合中的元素和他的机器能转换的元素,对于输入中表示它们的每个数字,你应该使用以下函数。






int rotate(int element)
{
 element=(element+R)%n;

 if (element==0) {
 element=n;
 }

 return element;
}
其中,R最初等于0,在任何时候答案为 "是 "时,都会增加查询的编号。查询的编号从1开始,按照它们在输入中出现的顺序。
输出
你应该打印q行。其中第i行应该包含 "YES"(不带引号),如果对于第i个八卦的每一对元素x和y(在集合xi,1,xi,2,...,xi,ni中)Limak都能成功。否则你应该打印 "NO"(不带引号)。

Examples
Input
6 5 4
1 2
2 3
3 4
2 4
5 6
2 0
4 2
2 1
6 2
3 4
3 2
6 3 4
2 5
4 6
2 1
1 2
1 2
Output
YES
NO
YES
YES
Input
7 6 2
1 2
1 3
2 4
2 5
3 6
3 7
7 2
1 2 3 4 5 6 7
4 5
6 7
7 2
1 2 3 4 5 6 7
4 6
5 7
Output
NO
YES
Note
让我们来看看第一个样本。
在第一次闲谈中,Radewoosh最喜欢的集合是{4,2},他没有机器。利马克可以将元素4转化为2(这样就完成了一半的任务),然后将2转化为3,将3转化为4。答案是 "是",所以R增加了1。
在第二个八卦中,输入中的集合用{6,2}表示,机器用(3,4)表示,但R等于1,所以集合是{1,3},机器是(4,5)。答案是 "不",所以R没有改变。
在第三个八卦中,集合{6,4,3}和机器(2,5)和(4,6)被破译为{1,5,4}、(3,6)和(5,1)。
考虑Radewoosh的选择。
如果他选择元素1和5,那么利马克能够将1转化为5,然后将6转化为3,3转化为2,2转化为1。
如果他选择元素5和4,那么利马克能够将5转化为6,6转化为3,3转化为4(一半已经在他后面),4转化为2,2转化为1,1转化为5。
如果他选择元素1和4,那么利马克能够将1转化为2,2转化为4,4转化为3,3转化为6,6转化为5,5转化为1。
所以利马克能够执行任务。答案是 "是",R增加了3(现在等于4)。
在最后的闲话中,{1,2}和(1,2)被解读为{5,6}和(5,6)。现在有2台机器(5,6),所以Limak能够再次执行任务。

输入样例 复制


输出样例 复制