#N9. 接龙 (chain)

接龙 (chain)

题目描述

在玩惯了成语接龙之后,小 J 和他的朋友们发明了一个新的接龙规则。

总共有 nn 个人参与这个接龙游戏,第 ii 个人拥有一个整数序列 SiS_i 作为他的词库。

一次游戏分为若干轮,每一轮规则如下:

  1. 某个人 pp 选出他的词库 SpS_p 中的一个连续子序列 AA 作为这一轮的“接龙序列”,其长度必须在 [2,k][2, k] 之间。
  2. 如果是第一轮,那么 AA 的第一个元素必须是 11
  3. 如果不是第一轮,那么 AA 的第一个元素必须与上一轮的接龙序列的最后一个元素相同。
  4. 这一轮进行接龙的人不能与上一轮相同。即如果这是第 jj 轮(j>1j > 1),且第 j1j-1 轮是由 qq 接龙的,那么必须满足 pqp \neq q

现在有 qq 个任务,第 jj 个任务给定 rj,cjr_j, c_j,表示要求进行恰好 rjr_j 轮游戏,且最后一轮的接龙序列的最后一个元素恰好为 cjc_j

请你判断每个任务是否可以完成。即,判断是否存在一个合法的游戏过程,使得该过程恰好包含 rjr_j 轮,且第 rjr_j 轮的接龙序列的最后一个元素恰好为 cjc_j

输入格式

第一行包含一个整数 TT,表示测试数据组数。

对于每组测试数据: 第一行包含三个整数 n,k,qn, k, q。 接下来 nn 行,第 ii 行首先包含一个整数 lil_i,表示第 ii 个人的词库序列 SiS_i 的长度;紧接着有 lil_i 个整数,表示序列 SiS_i 的元素。 接下来 qq 行,每行包含两个整数 rj,cjr_j, c_j,表示一个任务。

输出格式

对于每组测试数据,输出 qq 行。第 jj 行输出一个整数 1100:如果第 jj 个任务可以完成,输出 11;否则输出 00

数据范围

  • 1T51 \le T \le 5
  • 1n1051 \le n \le 10^5
  • 2k2×1052 \le k \le 2 \times 10^5
  • 1q1051 \le q \le 10^5
  • 2li2×1052 \le l_i \le 2 \times 10^5
  • li2×105\sum l_i \le 2 \times 10^5
  • 序列中的元素在 [1,2×105][1, 2 \times 10^5] 之间。
  • 1rj1001 \le r_j \le 100
  • 1cj2×1051 \le c_j \le 2 \times 10^5