[Wf2016]Longest Rivers

时间限制:100s      空间限制:1024MB

题目描述

有n条河流的发源地,有m个汇合点,每个汇合点都有若干条河流汇合,最后所有的河流汇合到一个点。给每个河流
定义一个长度,即从汇合终点开始,遇到分叉即只保留一条主干,剩下的都是支流。现在对于每条河流询问最好可
能的排名。n,m<=500000。


输入格式

第一行包含两个整数n(1<n<=500000)代表河流源头数,m(0<=m<n)表示汇合点数,这些汇合点被标号为1~m。
接下来n行描述河流,每行包含一个字符串(长度不超过10),表示河流源头的名字,
然后有两个整数c(0<=c<=m)和d(1<=d<=10^9),c表示离其最近的河流下游交汇处的标号,d是到交汇处的距离。
最后m行描述交汇点1~m。每行两个数该交汇点下游最近的交汇点和距离。


输出格式

输出n行,每行输出河流的名字和最高的可能排名。


样例输入

6 3
Chi 1 1047
Mekong 2 2650
Mun 1 800
Nan 3 710
Salween 0 2815
Yom 3 787
2 100
0 1700
0 30

样例输出

Chi 1
Mekong 1
Mun 3
Nan 6
Salween 1
Yom 4

提示

没有写明提示


题目来源

鸣谢Yts1999上传,lbn187提供译文

Menuappsclose