SP27097 FN16RIVER - Longest Rivers
题目描述
湄南河水系是泰国的主要河流系统,按长度从长到短排列,其六条最长河流分别是:
1. Tha Chin(765公里)
2. Nan(740公里)
3. Yom(700公里)
4. Ping(658公里)
5. Pa Sak(513公里)
6. Wang(335公里)
图中展示了一个简化版本的湄南河水系模型,较小的红色数字表示各条河流的不同河段的长度。当多条河流汇聚时,形成一个称为「汇流点」的节点,这些节点用较大的黑色数字编号。在这个模型中,每条河流最终要么在汇流点结束,要么流入大海,大海用特殊编号0标识。当两条或多条河流在某个汇流点(不包括汇流点0)相交时,合并后的河流将采用其中一条小河的名称。例如,Ping和Wang在汇流点1相交,并且合并后的河流继续使用Ping这个名称。在这种命名情况下,Ping总长度为658公里,而Wang则只有335公里。如果合并后的河流名为Wang,则Wang的长度为688公里,而Ping的长度只有305公里。
这种现象引发了沿河城镇间的激烈竞赛。例如,Wang岸边的居民会抗议说,也许通过一个合适的命名方案,他们的河流可以成为最长的,或者起码不是倒数第一!为了消除所有猜测,你的任务是验证所有可能的情况。
一条河流的「排名」是按照所有河流的长度从长到短排列后的位置,其中最长的河流排名为1。对于每条河流,你需要找出它在所有命名方案中的最佳可能排名。在任何汇流点,新形成的河流必须在其汇合的河流名称中选择其一。如果在某一个命名方案下,两条或多条河流长度相等,那么这些河流会被给予相同的最佳排名。例如,如果只有一条河流最长,而其他所有河流长度相同,那么这些河流的排名都是2。
输入格式
第一行包含两个整数 $n$ 和 $m$,分别表示系统中的河流源头数和正标号的汇流点数。这些汇流点从1到m编号。
接下来的 $n$ 行依次描述每条河流。每行包括两个整数 $c$ 和 $d$,分别表示最近的下游汇流点编号,以及从源头到该汇流点的距离(公里)。
最后的 $m$ 行描述了汇流点1到m,每行包括两个整数:最近下游汇流点的编号和从当前汇流点到该汇流点的距离(公里)。
可以保证每个汇流点1到m至少出现在下游汇流点列表中两次,汇流点0至少出现一次,并且所有河流源头都接入汇流点0。
**由于输入文件的大小限制,所有输入数据均以64进制表示。64进制整数使用0-9表示数字0-9,A-Z表示数字10-35,a-z表示数字36-61,+表示数字62,/表示数字63。**
输出格式
按照输入顺序输出每条河流在所有命名方案中的最佳排名,每行输出一个整数,表示该河流的最佳排名(十进制显示)。
**本翻译由 AI 自动生成**