T828700 避险路线(shelter)
题目描述
某地区有编号为 $1$ 至 $N$ 的 $N$ 座城市,以及 $M$ 条连接不同城市的双向道路。每对城市之间至多有一条道路。
其中 $K$ 座城市已被封锁,不能进入。对于一座未被封锁的城市,如果从它出发,沿原有道路经过不超过 $S$ 条道路就能到达某座封锁城市,那么它属于危险城市;否则属于普通城市。判断危险程度时使用原有的全部道路,不因城市被封锁而删除道路。
你要从城市 $1$ 前往城市 $N$,并且不能经过任何封锁城市。每次沿道路到达一座中间城市,都需要在该城市住宿一晚:普通城市的住宿费用为 $P$,危险城市的住宿费用为 $Q$,其中 $P
输入格式
第一行一个整数 $T$,表示数据组数。
每组数据第一行四个整数 $N,M,K,S$。
第二行两个整数 $P,Q$。
接下来 $K$ 行,每行一个整数 $C_i$,表示一座封锁城市。所有 $C_i$ 互不相同;当 $K=0$ 时没有这部分输入。
接下来 $M$ 行,每行两个整数 $A_i,B_i$,表示城市 $A_i$ 与 $B_i$ 之间有一条双向道路,且 $A_i
输出格式
每组数据输出一行一个整数,表示最小住宿费。答案可能超过 $32$ 位有符号整数的范围。
说明/提示
城市 $7$ 被封锁,危险城市为 $3,4,6,8,12$。一条最优路线为 $1\to2\to5\to9\to10\to11\to12\to13$。
其中在城市 $2,5,9,10,11$ 住宿各花费 $1000$,在城市 $12$ 住宿花费 $6000$,起点和终点不收费,总费用为 $5\times1000+6000=11000$。
## 样例 2
见 `考生目录/shelter/shelter2.in` 与 `考生目录/shelter/shelter2.ans`。该样例满足测试点 $1\sim6$ 的约束。
## 样例 3
见 `考生目录/shelter/shelter3.in` 与 `考生目录/shelter/shelter3.ans`。该样例满足测试点 $7\sim12$ 的约束。
## 样例 4
见 `考生目录/shelter/shelter4.in` 与 `考生目录/shelter/shelter4.ans`。该样例满足测试点 $13\sim20$ 的约束。
## 样例 5
见 `考生目录/shelter/shelter5.in` 与 `考生目录/shelter/shelter5.ans`。该样例满足测试点 $13\sim20$ 的约束。
## 样例 6
见 `考生目录/shelter/shelter6.in` 与 `考生目录/shelter/shelter6.ans`。该样例满足测试点 $13\sim20$ 的约束。
## 样例 7
见 `考生目录/shelter/shelter7.in` 与 `考生目录/shelter/shelter7.ans`。该样例满足测试点 $13\sim20$ 的约束。
## 数据范围
对于所有数据,保证 $1\le T\le10$。每组数据满足:
- $2\le N\le10^5$,$1\le M\le2\times10^5$;
- $0\le K\le N-2$,$0\le S\le10^5$;
- $1\le P