CF1389G Directing Edges

题目描述

给你一张 $n$ 个点 $m$ 条边的无向连通图。图上还有 $k$ 个特殊点。 你需要给每一条边定向,也可以保留该边无向。如果你保留了第 $i$ 条边无向,你需要支付 $w_i$ 个硬币,如果你给它定向,则无需支付任何费用。 我们称一个点是 *饱和的*,当且仅当所有特殊点通过图上的边,都可以到达这个点(如果一条边是无向的,则这条边可以双向通行)。在你给图定向完成后(可能保留一些边无向),对于每个饱和的点 $i$,你都能获得 $c_i$ 个硬币的收益。故而,你的总利润为 $\sum\limits_{i \in S} c_i - \sum\limits_{j \in U} w_j$,其中 $S$ 表示饱和的点集,$U$ 表示你选择保留无向的边集。 对于每个顶点 $i$,在要求强制选取 $i$ 为饱和点的情况下,计算你可能收获的最大利润。

输入格式

第一行输入三个整数 $n, m, k ~ (2 \le n \le 3 \cdot 10 ^ 5; 1 \le m \le \min(3 \cdot 10 ^ 5, \frac{n(n - 1)}{2}); 1 \le k \le n)$。 第二行输入 $k$ 个两两不同的整数 $v_1, v_2, \ldots, v_k ~ (1 \le v_i \le n)$,表示每个特殊点的编号。 第三行输入 $n$ 个整数 $c_i ~ (0 \le c_i \le 10 ^ 9)$。 第四行输入 $m$ 个整数 $w_i ~ (0 \le w_i \le 10 ^ 9)$。 接下来 $m$ 行,每行输入两个整数 $x_i, y_i ~ (1 \le x_i, y_i \le n; x_i \neq y_i)$,表示第 $i$ 条边的两端点。 保证任意点对之间最多只有一条边。

输出格式

输出 $n$ 个整数,其中第 $i$ 个整数表示要求强制选取 $i$ 为饱和点的情况下,可能收获的最大利润。 ### 样例解释 对于第一个样例: - 强制选取顶点 $1$ 为饱和点的最优方案为:将边定向为 $2 \to 1$,$3 \to 2$,则 $1$ 是唯一一个饱和点,答案为 $11$; - 强制选取顶点 $2$ 为饱和点的最优方案为:保留 $1-2$ 这条边无向,另一条边定向为 $3 \to 2$,则 $1, 2$ 为饱和点,而保留边 $1-2$ 无向的代价为 $10$,所以答案为 $2$; - 强制选取顶点 $3$ 为饱和点的最优方案为:将边定向为 $2 \to 3$,$1 \to 2$,则 $3$ 是唯一一个饱和点,答案为 $5$。 第二个样例的最优方案为将边定向成环状:$1 \to 2, 2 \to 3, 3 \to 4, 4 \to 1$。这样之后,所有点都是饱和点。

说明/提示

Consider the first example: - the best way to make vertex $ 1 $ saturated is to direct the edges as $ 2 \to 1 $ , $ 3 \to 2 $ ; $ 1 $ is the only saturated vertex, so the answer is $ 11 $ ; - the best way to make vertex $ 2 $ saturated is to leave the edge $ 1-2 $ undirected and direct the other edge as $ 3 \to 2 $ ; $ 1 $ and $ 2 $ are the saturated vertices, and the cost to leave the edge $ 1-2 $ undirected is $ 10 $ , so the answer is $ 2 $ ; - the best way to make vertex $ 3 $ saturated is to direct the edges as $ 2 \to 3 $ , $ 1 \to 2 $ ; $ 3 $ is the only saturated vertex, so the answer is $ 5 $ . The best course of action in the second example is to direct the edges along the cycle: $ 1 \to 2 $ , $ 2 \to 3 $ , $ 3 \to 4 $ and $ 4 \to 1 $ . That way, all vertices are saturated.