#175. 魔法门

魔法门

Description

      最近新出了一款横版闯关类RPGRPG游戏,这个游戏的设定是这样的:地图由nn个魔法门和mm条双向道路组成,每一条道路的两端连接着魔法门。当玩家以蛮力打开魔法门时会耗费此魔法门对应的体力值,但是如果使用万能魔法石,就可以不耗费体力破开任何一道魔法门,当玩家通过魔法门之后,魔法门会自动复原。当然,道路上布满了荆棘和泥泞,所以穿过一条道路也会耗费对应的体力值。

      游戏开始时,玩家会随机出现在传送门ss前,并且携带了kk个万能魔法石,现在已经知道只要穿过了传送门tt之后,就可以获得此次游戏的胜利。(注意:sstt两个魔法门都需要打开,且数据保证sstt是两个不同的魔法门)

      智哥很喜欢横版闯关类的游戏,但是他觉得只获得游戏的胜利实在是太简单了,所以他决定给自己增添一点难度——只耗费最少的体力值通关。通关之后,智哥想要知道自己有没有完成自己的目标,你能帮助智哥算出他本次游戏通关所需要花费的最少体力值吗?如果无论如何都无法获得游戏的胜利,输出1-1

Input Format

​       在第一行中输入一个正整数tt,代表测试用例的个数(1t101\leq t \leq 10

​       对于每组测试用例来说:

​       在第一行中输入5个非负整数nnmmkksstt。分别代表魔法门和道路的个数,智哥拥有的万能魔法石的数量,以及魔法门ss和魔法门tt。($2 \leq n \leq 2e4, 1 \leq m \leq 4e4, 0 \leq k \leq 50, 1 \leq s , t \leq n$)

       接下来的一行中输入以空格分割开的nn个正整数,pip_i代表以蛮力破开魔法门ii所需要花费的体力值。(1in1pi1e91 \leq i \leq n,1 \leq p_i \leq 1e9)。

       再接下来的mm行中,每行输入uuvvww,代表魔法门uu和魔法门vv之间有一条需要花费ww点体力值的双向道路。(1u,vn1w1e91 \leq u, v \leq n,1 \leq w \leq 1e9数据可能存在自环和重边

​       (保证所有测试用例nn的总和不超过2e42e4mm的总和不超过4e44e4)

Output Format

​       在一行中输出智哥在获得游戏的胜利后消耗的最小体力值。如果无论任何都无法获得游戏的胜利,输出1-1

1
5 6 2 1 4
10 100 50 5 3
1 5 50
5 4 10
1 2 1
2 4 3
2 3 8
3 4 10 
9