2550: 森林

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:12 解决:2

题目描述

森林是由若干个无环带权图组成,图中每个结点最多只能指向另外一个结点,树根是指没有指向任何结点的结点,我们把结点v所在树的树根记为root(v)。
结点v的深度是指从v到树根的边权之和,记为depth(v)。
考虑以下构造过程:一开始森林中没有任何结点,结点被一个个加进来,一共有n次操作。第i(i>0)次操作用 (k,v1,x1,v2,x2,... ,vk,xk)表示,表示要加入结点i,
同时加入k条边到图中,第一条边是由root(v1)指向结点i,边 权 为depth(v1)+x1,第二条边是由root(v2)指向i,边权为depth(v2)+x2,以此类推。如果k=0,则只是把结点i加进去,没有加边。
你的任务是计算所有加进来的边的权值之和对1000000007(10^9+7)的余数。

输入

第一行包含一个整数n(1<=n<=10^5),表示点数。
接下来n行,每行᧿述一个操作,第i行᧿述加结点i和指向结点i的边的操作:
第一个数是一个整数k(0<=k<=i-1),接下来2k 个空格隔开的整数
v1,x1,v2,x2,...,vk,xk(1<=vj<=i-1,|xj|<=10^9)
保证所有k的总和不超过10^5,并且保证操作不可能形成环和重边情况。

输出

输出一行一个整数,表示所有边权之和mod 1000000007(10^9+7)的结果。

样例输入 复制

6
0
0
1 2 1
2 1 5 2 2
1 1 2
1 3 4

样例输出 复制

30

提示

【输入输出样例二】

in

5

0

1 1 5

0

0

2 3 1 4 3

out

9

【样例解释】 第一个样例如下图所示:

 

【数据规模】 60%的数据满足 1<=n<=10^4; 100%的数据满足 1<=n<=10^5。