第39937题 程序题
猫和老鼠

题目描述

猫和老鼠所在的庄园可以视为一张由 $n$ 个点和 $m$ 条带权无向边构成的连通图。结点依次以 $1, 2, \ldots, n$ 编号,结点 $i$($1 \le i \le n$)有价值为 $c_i$ 的奶酪。在 $m$ 条带权无向边中,第 $i$($1 \le i \le m$)条无向边连接结点 $u_i$ 与结点 $v_i$,边权 $w_i$ 表示猫和老鼠通过这条边所需的时间。

猫窝位于结点 $a$,老鼠洞位于结点 $b$。对于老鼠而言,结点 $u$ 是安全的当且仅当:

  • 老鼠能规划一条从结点 $u$ 出发逃往老鼠洞的路径,使得对于路径上任意结点 $x$(包括结点 $u$ 与老鼠洞)都有:猫从猫窝出发到结点 $x$ 的最短时间严格大于老鼠从结点 $u$ 沿这条路径前往结点 $x$ 所需的时间。

老鼠在夺取安全结点的奶酪时不存在被猫抓住的可能,但在夺取不是安全结点的奶酪时则不一定。为了确保万无一失,老鼠决定只拿取安全结点放置的奶酪。请你计算老鼠所能拿到的奶酪价值之和。

输入格式

第一行,两个正整数 $n, m$,分别表示图的结点数与边数。

第二行,两个正整数 $a, b$,分别表示猫窝的结点编号,以及老鼠洞的结点编号。

第三行,$n$ 个正整数 $c_1, c_2, \ldots, c_n$,表示各个结点的奶酪价值。

接下来 $m$ 行中的第 $i$ 行($1 \le i \le m$)包含三个正整数 $u_i, v_i, w_i$,表示图中连接结点 $u_i$ 与结点 $v_i$ 的边,边权为 $w_i$。

输出格式

输出一行,一个整数,表示老鼠所能拿到的奶酪价值之和。

输入样例 1

5 5
1 2
1 2 4 8 16
1 2 4
2 3 3
3 4 1
2 5 2
3 1 8

输出样例 1

22

输入样例 2

6 10
3 4
1 1 1 1 1 1
1 2 6
2 3 3
3 1 4
3 4 5
4 5 8
5 6 2
6 4 1
3 2 4
5 4 4
3 3 6

输出样例 2

3

数据范围

对于 40 的测试点,保证 $1 \le n \le 500$、$1 \le m \le 500$。

对于所有测试点,保证 $1 \le n \le 10^5$、$1 \le m \le 10^5$、$1 \le a, b \le n$ 且 $a \ne b$、$1 \le u_i, v_i \le n$、$1 \le w_i \le 10^9$。

{{ option.label }}
子题{{ index + 1 }} {{ child.type_label }}
{{ option.label }}
✓ 正确 ◐ 部分正确 ✗ 错误
编辑模式
程序运行统计
暂无判题统计
知识点:
提交{{ questionInfo.stats ? questionInfo.stats.submit_count : 0 }}次 正确率{{ statsAccuracy }}%
答案解析