#lg3627. 【缩点】[APIO2009] 抢掠计划(好题)

【缩点】[APIO2009] 抢掠计划(好题)

【题意】

给出 NN 个点 MM 条有向边的有向图。每个点都存有一定的金额 aia_i 。给出一个出发点(编号为 SS ) 和 PP 个终点 pip_i

求从出发点出发到达其中一个终点最多可以捡到多少钱(保证出发点 SS 可以到达其中至少一个终点)。

注:可以重复路过某个点(普通点或终点),但重复路过某个点只能捡一次钱。

例如:有 66 个点,出发点为 11(由一个入口符号 → 来标识),终点用双圈来表示,每个点的钱数标在了点的上方。有向边的连接情况如下图所示:

在这个例子中,能捡到的现金总数为 4747,路线是:12412351 \to 2 \to 4 \to 1 \to 2 \to 3 \to 5

【输入格式】

第一行包含两个整数 N,MN,MN,M5×105N, M \le 5\times 10^5)。

接下来 MM 行,每行两个整数 x yx \ y ,表示一条 xyx \to y 的有向边。

接下来 NN 行,每行一个整数 aia_i0ai40000 \le a_i \le 4000)。

接下来一行包含两个整数 S PS \ P

接下来的一行中有 PP 个整数 pip_i

【输出格式】

输出一个整数,表示最多能捡到的现金总数。

输入 #1

6 7 
1 2 
2 3 
3 5 
2 4 
4 1 
2 6 
6 5 
10 
12 
8 
16 
1 
5 
1 4 
4 3 5 6

输出 #1

47

说明/提示

对于 50%50\% 的数据,保证 N,M3000N, M \le 3000

对于 100%100\% 的数据,保证 N,M5×105N, M \le 5\times 10^50ai40000 \le a_i \le 4000。保证可以从市中心沿着 Siruseri 的单向的道路到达其中的至少一个酒吧。