CF1572A.Book

传统题 时间 2000 ms 内存 256 MiB 9 尝试 25 已通过 7 标签

Book

题目描述

有一本包含 nn 个章节的书。

每个章节都有一个指定的前置章节列表,要理解该章节,必须先理解这些前置章节。为了理解一个章节,你需要在理解其所需列表中的所有章节之后,再阅读它。

目前你还没有理解任何章节。你将从头到尾反复阅读这本书,直到你理解整本书为止。注意,如果在某一时刻阅读某个章节时,你尚未理解其所需的某些前置章节,那么你仍然不会理解该章节。

请确定为了理解所有章节,你需要将这本书读多少遍;或者确定无论读多少遍,你都无法理解所有章节。

输入

每个测试包含多个测试用例。第一行包含测试用例数 tt(1≤t≤2⋅1041 \le t \le 2\cdot10^4)。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2\cdot10^5)—— 章节数。

接下来 nn 行,第 ii 行以整数 kik_i(0≤ki≤n−10 \le k_i \le n-1)开头 —— 要理解第 ii 章所需的前置章节数量。然后跟着 kik_i 个整数 ai,1,ai,2,…,ai,kia_{i,1}, a_{i,2}, \dots, a_{i, k_i}(1≤ai,j≤n1 \le a_{i, j} \le n,ai,j≠ia_{i, j} \ne i,且 j≠lj \ne l 时 ai,j≠ai,la_{i, j} \ne a_{i, l})—— 理解第 ii 章所需的前置章节编号。

保证所有测试用例的 nn 之和以及所有 kik_i 之和均不超过 2⋅1052\cdot10^5。

输出

对于每个测试用例,如果整本书能够被理解,则输出需要阅读的次数;否则输出 −1-1。

说明

  • 在第一个样例中,第一次阅读时我们会理解第 22、44 章,第二次阅读时理解第 11、33 章。
  • 在第二个样例中,每一章都需要理解另一章,因此无法理解整本书。
  • 在第三个样例中,每一章都只需要理解书中出现得更早的章节,因此我们可以一次阅读就理解所有内容。
  • 在第四个样例中,第一次阅读时会理解第 22、33、44 章,第二次阅读时理解第 11 章。
  • 在第五个样例中,从第 55 章到第 11 章,每次阅读只会理解一章。

样例

5
4
1 2
0
2 1 4
1 2
5
1 5
1 1
1 2
1 3
1 4
5
0
0
2 1 2
1 2
2 2 1
4
2 2 3
0
0
2 3 2
5
1 2
1 3
1 4
1 5
0
2
-1
1
2
5

在线编程 IDE

建议全屏模式获得最佳体验