QOJ.ac

QOJ

时间限制: 3.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#8038. 锤子落下

统计

Boboland 是一个美丽的国家,拥有 $n$ 个城市和 $m$ 条双向道路,由 Bobo 国王统治。一条双向道路 $(u, v, w)$ 连接城市 $u$ 和城市 $v$,距离为 $w$。保证 Boboland 的每个城市至少连接有一条道路。

第 $i$ 个城市最初有 $a_i$ 名居民,他们过着幸福平静的生活,直到有一天,锤子开始落下!具体来说,每天锤子都会落在 Boboland 的恰好一个城市上,导致该城市的所有居民死亡。

作为 Boboland 的国王,Bobo 需要处理这种情况。但不幸的是,他不知道为什么会发生这场灾难,也无法找到让锤子停止落下的方法。尽管如此,他想出了以下“动态零伤亡政策”:只要某天锤子落在某个城市时,该城市的所有居民都已经转移到其他城市,从而没有造成人员伤亡,就是可以接受的。

在与 Boboland 的先知交谈后,Bobo 获得了以下信息:在接下来的 $q$ 天里,锤子将依次落在城市 $b_1, b_2, \dots, b_q$ 上。在任何时候,如果存在道路 $(u, v, w)$,Bobo 都可以安排将城市 $u$ 的任意一名居民转移到相邻城市 $v$,花费为 $w$。多名居民可以同时转移。此外,任何居民都可以被多次转移。

Bobo 希望确保在 $q$ 天后没有居民死亡,并尽可能减少花费。但是,像往常一样,国王从不亲自计算,所以你必须计算出实现这一目标的最小花费。

由于答案可能很大,你需要输出答案对 $998\,244\,353$ 取模后的结果。注意,你的最小化目标仍然是取模前的总花费,而不是取模后的结果。

输入格式

第一行包含三个整数 $n, m, q$ ($2 \le n \le 10^5, 1 \le m, q \le 10^5$),分别表示 Boboland 的城市数量、道路数量以及先知提供的信息长度。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$),表示每个城市的居民数量。

接下来的 $m$ 行,每行包含 3 个整数 $u, v, w$ ($1 \le u, v \le n, u \neq v, 1 \le w \le 10^9$),表示 Boboland 的一条双向道路 $(u, v, w)$。保证每个城市至少连接有一条道路。

下一行包含 $q$ 个整数 $b_1, b_2, \dots, b_q$ ($1 \le b_i \le n$),表示在接下来的 $q$ 天里,锤子依次落下的城市。

输出格式

输出一行一个整数,表示实现 Bobo 目标所需的最小花费,对 $998\,244\,353$ 取模。

样例

样例输入 1

3 2 2
1 1 1
2 3 10
1 2 1
3 2

样例输出 1

12

样例输入 2

2 1 10
5000 5000
1 2 10000
1 2 2 1 2 2 1 1 1 2

样例输出 2

550000000

说明

对于第一个样例,一种最优安排是在第二天开始时将城市 3 的唯一一名居民转移到城市 2,然后在第三天开始时将城市 2 的两名居民转移到城市 1。总花费为 $10 \cdot 1 + 1 \cdot 2 = 12$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.