SP7425 HACKERS - Hackers

题目描述

在你的办公室网络中,有若干台计算机通过双向链路相互连接。每条链路都有其特定的访问值,网络中的每一位用户都有对应的访问权限,他们可以使用那些访问值不超过自己权限的链路。 事情一直运转良好,直到你发现一群黑客开始入侵这个网络。假如一台计算机 A 和另一台计算机 B 相连,链路的访问值为 $V$,那么只要一个黑客具备至少 $V$ 的访问权限并已经控制了 A,他就可以进一步控制 B。 这些黑客企图通过滥用网络漏洞来掌握关键的计算机资源。他们正试图提升自己的访问权限以便利用这些链路,而你的任务是评估网络的安全等级。 现有的网络信息中,包含每位黑客当前所控制和希望控制的目标计算机,你需要计算出每位黑客要实现其目标所需的最小访问权限。 请注意,黑客们都是独自行动的,他们既不相互协作也不互相干扰。这意味着每位黑客可以独立于他人控制计算机和使用链路。

输入格式

每个测试用例由多行组成。首行包含三个整数 $C, L, H$,分别表示计算机数量、连接数量和黑客数量($2 \le C \le 10^3$,$1 \le L \le 10^3$,$1 \le H \le 2 \times 10^3$)。接下来 $H$ 行,描述每位黑客当前控制的计算机编号($1 \le S_i \le C$)。接着的 $L$ 行中,每行包含三个整数 $A, B, V$,表示一条连接的两个端点计算机及其访问值($1 \le A < B \le C$,$1 \le V \le 10^9$)。紧接着的 $H$ 行分别列出每个黑客当前控制的计算机和期望控制的计算机($1 \le S, T \le C$ 且 $S \neq T$)。在任何测试用例中,保证没有两条链路连接同一对计算机,而且任意两台计算机之间至少存在一条链路通路。输入以一行三个 -1 结尾。

输出格式

对于每个测试用例,输出一行,包含 $H$ 个整数,对应每个黑客达到目标所需的最小访问权限。输出顺序与输入中黑客的顺序一致。

说明/提示

- $2 \le C \le 10^3$ - $1 \le L \le 10^3$ - $1 \le H \le 2 \times 10^3$ - $1 \le A < B \le C$ - $1 \le V \le 10^9$ - $1 \le S, T \le C \text{ 且 } S \neq T$ **本翻译由 AI 自动生成**