#1412. 阿夸木今天吃什么

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Shirost

题目描述

阿夸木今天吃什么?

阿夸木最近学会了做饭,她打算邀请她的朋友们来她家吃饭。

但是阿夸木觉得自己跑来跑去太麻烦了。其实阿夸木会使用分身,于是她变出了 nn 个分身去一个个邀请她的朋友们。分身在邀请完朋友后要返回自己家。

包括阿夸木在内一共 nn 个人, nn 个人家之间用 mm 条有向边相连接,每条边有个权值 zz 表示这条边的路程。

已知阿夸木家位于一号节点,问阿夸木们最少要跑多少路程。

形式化的讲,令 dis(x,y)dis(x,y) 表示 xxyy 的最短路,则求 i=1ndis(1,i)+dis(i,1)\sum\limits_{i=1}^n dis(1,i)+dis(i,1) , 如果存在 ii11 无法到 ii 或者 ii 无法到 11,则输出 1-1

输入格式

第一行两个数 nnmm 表示点的个数和边的个数。

接下来 mm 行,每行三个数 xxyyzz 表示从 xxyy 有一条权值为 zz 的有向边。

输出格式

输出一个数,表示阿夸木一共要跑的路程。如果存在一个节点,一号节点无法到该节点,则输出-1.

样例

样例输入1

4 6
1 2 10
2 1 60
1 3 20
3 4 10
2 4 5
4 1 50

样例输出1

210

数据范围与提示

1n5×105,1m1061 \leq n \leq 5 \times 10^5, 1 \leq m \leq 10^6

1x,yn1 \leq x,y \leq n 1z106 1 \leq z \leq 10^6

样例解释:

dis(1,2)=10 , dis(2,1)=55

dis(1,3)=20 , dis(3,1)=60

dis(1,4)=15 , dis(4,1)=50

即ans=10+55+20+60+15+50=210