题目描述
给定一张 $n$ 个点,若干条带权无向边的图。初始时,没有任何一条边存在。
你需要按序完成给定的 $q$ 个操作,每个操作为以下两种操作类型之一:
+ `x y` 表示询问操作,询问点 $x$ 与 点$y$ 之间的最短路径长度;如果两点之间不存在任何路径,则输出`-1`。
+ `x y w` 表示链接操作,即在点 $x$ 与 点$y$ 之间新建一条长度为 $w$ 的边。
输入
输入的第一行包含两个正整数 $n, q$。
接下来 $q$ 行,每行输入两个或者三个正整数,形如 $x$ $y$ 或 $x$ $y$ $w$,表示一个操作,相邻的两个数之间用一个空格隔开。
输出
对于每个询问操作,你需要输出一行,一个整数,表示这次询问的答案。
样例输入输出
输入#1
复制
4 7
1 3
1 3 100
2 3 200
1 3
1 2
2 3
1 4
输出#1
复制
-1
100
300
200
-1
提示
+ 对于 $30\%$ 的数据, $1 \leq n, q \leq 30$。
+ 对于 $60\%$ 的数据,$1 \leq n, q \leq 3,000$。
+ 对于 $100\%$ 的数据, 保证 $1 \leq n,q \leq 300,000$ , $1 \leq w \leq 10^3$。
数据保证,在任何链接操作之前,所链接的两个点 $x$ 与 $y$ 之间不存在任何路径。
样例1说明:操作2、3为链接操作,操作1、4、5、6、7为询问操作。
其中1、7操作在询问时没有连通,故答案为 -1