题号:NC21354
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
有N种不同的怪兽,标号为1到N
每天晚上,所有的怪兽都会死去,当一只怪兽死去的时候,它会生出一只或者多只怪兽,因此怪兽的数量从来不会减少
给你一个字符数组表示每种怪兽死去的时候能生出哪些种类的怪兽
假设第i个字符串为"2 3 3",表示第i只怪兽死的时候,1只2类型的怪兽和2只3类型的怪兽会生出来
显然,怪兽的数量可能会是无穷大的,也有些时候会变成一个定值
一开始你只有一只1类型的怪兽,你想要知道最终会有多少只怪兽,对1e9+7取模
如果有无穷多只,输出-1
输入描述:
第一行输入一个整数n 表示怪兽的种类数 (1 ≤ n ≤ 50)
接下来n行每行一个字符串由若干个数字构成
意义见题面描述
输出描述:
输出一个整数
示例5
输入
复制
7
2 2
3
4 4 4
5
6
7 7 7 7
7
备注:
子任务1: n <= 10
子任务2: n <= 20
子任务3: 无限制