测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A67197. 猫和老鼠

编程题

题目描述

试题名称:猫和老鼠

时间限制:1.0 s

内存限制:512.0 MB

3.1.1 题目描述

猫和老鼠所在的庄园可以视为一张由 n个点和 m条带权无向边构成的连通图。结点依次以 1,2,...,n编号,结点 i 1<=i<=n)有价值为 ci 的奶酪。在 m 条带权无向边中,第  i 1<=i<=m条无向边连接结点 ui与结点 vi,边权w表示猫和老鼠通过这条边所需的时间。

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

    老鼠能规划一条从结点 u 出发逃往老鼠洞的路径,使得对于路径上任意结点 x(包括结点 u 与老鼠洞)都有:

    猫从猫窝出发到结点vx 的最短时间严格大于老鼠从结点 u 沿这条路径前往结点 x 所需的时间。

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

3.1.2 输入格式

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

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

第三行, n 个正整数 c1,c2,...cn,表示各个结点的奶酪价值。

接下来 m 行中的第 i 行( 1<=i<=m)包含三个正整数 uiviw表示图中连接结点 ui与结点 vi的边,边权为 w

3.1.3 输出格式

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

3.1.4 样例

3.1.4.1 输入样例 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


3.1.4.2 输出样例 1

22


3.1.4.3 输入样例 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


3.1.4.4 输出样例 2

3


3.1.5 数据范围