Callisto的魔法树

Time Limit
3s
Memory Limit
1048576KB
Judge Program
Standard
Ratio(Solve/Submit)
0.00%(0/0)
Description:

Callisto有一棵包含$m$个节点的有根树(根节点为$1$),第$i$个节点有一个点权$c_{i}$。

一开始,Callisto会将这棵树复制$n-1$次,形成$n$棵一模一样的树,按$1$到$n$编号。

然后,Callisto会选择一棵树,使之变为Magical Tree。

接下来Callisto会做很多次操作:

1. 如果这棵树不是Magical Tree,那么Callisto会在这棵树上选择两个节点$x,y(dep_x \lt dep_y)$:
将$c_{x}$减一,$x$的父节点$fa$的$c_{fa}$加一。
将$c_{y}$减一,$y$的其中一个儿子$son$的$c_{son}$加一。

2. 如果这棵树是Magical Tree,那么Callisto会在这棵树上选择两个节点$x,y(dep_x \lt dep_y)$:
将$c_{x}$减一,$x$的父节点的父节点$ffa$的$c_{ffa}$加一。
将$c_{y}$减一,$y$的其中一个儿子$son$的$c_{son}$加一。

保证以上节点都存在,而且任意时刻点权不会小于0。

保证每棵树至少执行一次操作。

操作完成后,Callisto忘记了原来的树的点权和选择的Magic Tree。

Callisto告诉你修改过的$n$棵树,问你哪一棵是Magic Tree,并且Magical Tree上做了几次操作。

Tip: $dep_x$表示$x$的深度,也就是到根节点的距离$+1$,根节点深度为$1$。

Input:

第一行包含两个整数$n,m(15\le n*m \le 3*10^5,3\le n,5\le m)$

接下来$m-1$行,每行两个整数$x,y$表示一条树边。

接下来$n$行,每行$m$个数,第$i$行第$j$个整数$c_{i,j}(0\le c_{i,j}\le 10^5)$表示编号为$i$的树的$j$号节点的点权。

Output:

一共一行,两个数,表示Magic Tree的编号和操作的次数。


Sample Input:
3 9
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
0 1 2 0 0 2 1 1 0
0 1 1 1 2 0 0 2 0
0 1 2 1 0 0 2 1 0
Sample Output:
3 1
Hint:

原树权值序列为${0,1,1,1,1,1,1,1,0}$。

第一棵树,$x=4,y=5$ 执行一次操作。

第二棵树,$x=6,y=7$ 执行一次操作。

第三棵Magical Tree,$x=5,y=6$ 执行一次操作。


Submit