AT_wupc2019_f RPG
题目描述
卡托正在制作某个RPG的剧本。这个RPG有N个场面,各场面已经决定是“战斗”还是“空地”。另外,有连接M个场景之间的移动通道,第i个通道可以从场景ai移动到场景bi。最初,作为RPG的主人公的辛亚,在场面1中,自由地在通道上移动,到达场面N后游戏就完成了。
辛亚有“精神”和“疲劳”两种状态。在“精神”状态下可以战斗,但在“疲劳”状态下不能战斗。在“疲劳”状态下去“战斗”场面的话,游戏就结束了。
辛亚以“精神”状态开始游戏。当你通过“战斗”场面时,你会累得处于“疲劳”状态。为了从“疲劳”状态回到“精神”状态,需要通过“恢复所”。
“恢复所”可以设置在任何“空地”场景中。在场景\\\(2\leqi\leq N-1)\中设置恢复点的成本是ci。
现在,还没有决定在哪里设置“恢复所”。因此,卡托决定设置“恢复所”,以满足以下条件。
> * 无论从场面\(1\)开始行动的辛雅选择了怎样的移动,从任意的“战斗”场面到达其他的“战斗”场面之间,至少有一次通过“恢复所”。
> * 游戏通关时的辛亚的状态可以是“疲劳”也可以是“精神”。
为了满足以上条件,请求出卡托设置“恢复所”时所需成本合计的最小值。如果如何设置“恢复站”都不能满足条件,请输出-1。
输入格式
输入以以下形式由标准输入给出。
N M
c2 c3 dots c{N-1}
a_1 b_1
a_2 b_2
vdots
a_M b_M
输出格式
请输出符合条件的“恢复站”安装成本合计的最小值。如果无法满足条件,请输出-1。
说明/提示
·\(3 \leq N \leq 500\)
·\(N-1 \leq M \leq 1000\)
·\(-1 \leq c_i \leq 10^9 \ (2 \leq i \leq N-1)\)
·\(c_i=-1\)那么,场面\(i\)就是“战斗”场面。
·\(c_i\geq0\)那么,场景\(i\)是“空地”场景,在那里设置“休息处”的成本是\(c_i\)。
·\(1 \leq a_i , b_i \leq N \ (1 \leq i \leq M)\)
·表示存在从场景ai到场景bi的移动通路。
·N当视为顶点M边的有向曲线时,所有顶点都存在来自顶点1的路径和朝向顶点N的路径。另外,不存在闭路。
·输入的值都是整数。
### 样例解释1
最适合选择场景3和场景5。
### 样例解释2
无法在场景2到场景3之间设置“恢复站”。