#AT2123. G - Foreign Friends

G - Foreign Friends

G - 外国朋友

分数:$600$ 分

问题描述

NN 个人和 KK 国家,分别标记为个人 11 、个人 22\ldots 、个人 NN 和国家 11 、国家 22\ldots 、国家 KK 。 每个人正好属于一个国家:人 ii 属于国家 AiA_i 。此外,其中还有 LL 个受欢迎的人:人 B1B_1 、人 B2B_2 、人 \ldots 、人 BLB_L 都很受欢迎。最初, NN 人中没有两个是朋友。

对于 MM 对人,作为上帝的高桥可以通过支付一定的费用让他们成为朋友:对于每个 1iM1\leq i\leq M ,他可以支付 CiC_i 的费用让人 UiU_i 和人 ViV_i 成为朋友。

现在,就每个 1iN1\leq i\leq N 来解决下面的问题。

高桥能否使人 ii 成为与人 ii 所属国家不同的受欢迎的人的间接朋友?如果可以,求所需总成本的最小值。这里,当存在一个非负整数 nn 和一个人的序列 (u0,u1,,un)(u_0, u_1, \ldots, u_n) ,使得 u0=su_0=sun=tu_n=t ,以及人 uiu_i 和人 ui+1u_{i+1} 是每个 0i<n0\leq i < n 的朋友时,称人 ss 是人 tt 的间接朋友。

约束

  • $2 \leq N \leq 10^5$
  • $1 \leq M \leq 10^5$
  • $1 \leq K \leq 10^5$
  • $1 \leq L \leq N$
  • $1 \leq A_i \leq K$
  • $1 \leq B_1<B_2<\cdots<B_L\leq N$
  • $1\leq C_i\leq 10^9$
  • $1\leq U_i<V_i\leq N$
  • 如果 $i \neq j$,有 $(U_i, V_i)\neq (U_j,V_j)$。
  • 输入中的所有值均为整数。

输入

输入在标准输入中以如下格式给出:

NN MM KK LL

A1A_1 A2A_2 \cdots ANA_N

B1B_1 B2B_2 \cdots BLB_L

U1U_1 V1V_1 C1C_1

U2U_2 V2V_2 C2C_2

\vdots

UMU_M VMV_M CMC_M

输出

记 $X_i$ 定义如下:如果不可能使 Person $i$ 成为不属于 Person $i$ 国家的受欢迎的人的间接朋友,则 $X_i = -1$;否则,$X_i$ 是所需的最小总代价。 在一行中输出 $X_1, X_2, \ldots, X_N$,用空格分隔。


4 4 2 2
1 1 2 2
2 3
1 2 15
2 3 30
3 4 40
1 4 10
45 30 30 25

Person $1$, $2$, $3$, $4$ 属于 Nation $1$, $1$, $2$, $2$,其中有两个受欢迎的人:Person $2$ 和 $3$。这里:

  • 对于 Person $1$,属于不同国家且是受欢迎的人的唯一一个是 Person $3$。要以最小代价使其成为间接朋友,我们需要支付代价 $15$ 使 Person $1$ 和 Person $2$ 成为朋友,并支付代价 $30$ 使 Person $2$ 和 Person $3$ 成为朋友,总共代价为 $15+30=45$。
  • 对于 Person $2$,属于不同国家且是受欢迎的人的唯一一个是 Person $3$。最小代价实现通过支付代价 $30$ 使 Person $2$ 和 Person $3$ 成为朋友。
  • 对于 Person $3$,属于不同国家且是受欢迎的人的唯一一个是 Person $2$。最小代价实现通过支付代价 $30$ 使 Person $2$ 和 Person $3$ 成为朋友。
  • 对于 Person $4$,属于不同国家且是受欢迎的人的唯一一个是 Person $2$。要以最小代价使其成为间接朋友,我们需要支付代价 $15$ 使 Person $1$ 和 Person $2$ 成为朋友,并支付代价 $10$ 使 Person $1$ 和 Person $4$ 成为朋友,总共代价为 $15+10=25$。

3 1 3 1
1 2 3
1
1 2 1000000000
-1 1000000000 -1

请注意,对于 Person $1$,Person $1$ 本身的确是间接朋友,但它不属于不同国家,所以没有属于不同国家的受欢迎的人。