{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"给定N个集合,第i个集合(表示为S(i))有C(i)个元素(这里的“集合”并不完全等同于数学中定义的“集合”,一个集合可能包含两个相同的元素)。每个集合中的元素由1到10000之间的正整数表示。现在有一些查询需要回答。一个查询是确定给定的两个元素i和j是否同时属于至少一个集合。换句话说,你需要确定是否存在一个数字k(1 \u003c\u003d k \u003c\u003d N),使得元素i属于S(k),并且元素j也属于S(k)。"}},{"title":"输入","value":{"format":"HTML","content":"输入的第一行包含一个整数N(1 \u003c\u003d N \u003c\u003d 1000),表示集合的数量。然后是N行。每行以一个数字C(i)(1 \u003c\u003d C(i) \u003c\u003d 10000)开头,然后是C(i)个数字,用空格分隔,表示集合中的元素(这些C(i)个数字不一定互不相同)。第N + 2行包含一个数字Q(1 \u003c\u003d Q \u003c\u003d 200000),表示查询的数量。接下来是Q行。每行包含一对数字i和j(1 \u003c\u003d i, j \u003c\u003d 10000,并且i可能等于j),表示需要回答的元素。"}},{"title":"输出","value":{"format":"HTML","content":"对于每个查询,在单独的一行中,如果存在这样的数字k,则打印“Yes”;否则打印“No”。"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3\r\n3 1 2 3\r\n3 1 2 5\r\n1 10\r\n4\r\n1 3\r\n1 5\r\n3 5\r\n1 10\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003eYes\r\nYes\r\nNo\r\nNo\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"提示","value":{"format":"HTML","content":"输入可能很大,C++语言的I/O函数(cin/cout)可能对这个问题来说有点慢。"}}]}