2653: 过路费

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:5 解决:0

题目描述

在某个遥远的国家里,有n个城市。编号为1,2,3,…,n。这个国家的政府修建了m条双向道路每条道路连接着两个城市。政府规定从城市S到城市T需要收取的过路费为所经过城市之间道路长度的最大值。如:AB长度为2BC长度为3,那么开车从A经过BC需要上交的过路费为3

佳佳是个做生意的人,需要经常开车从任意一个城市到另一个城市,因此需要频繁地上交过路费,由于忙于做生意,所以他无时间来寻找交过路费最低的行驶路线。然而,当他交的过路费越多他的心情就变得越糟糕。作为秘书的你,需要每次根据老板的起止城市,提供给他从开始城市到达目的城市,最少需要上交多少过路费。

输入

  第一行是两个整数n m,分别表示城市的个数以及道路的条数。
  接下来m行,每行包含三个整数abw1≤ab≤n0≤w≤10^9),表示ab之间有一条长度为w的道路。
  接着有一行为一个整数q,表示佳佳发出的询问个数。
  再接下来q行,每一行包含两个整数ST1≤S,T≤nS≠T, 表示开始城市S和目的城市T

输出

q行,每行一个整数,分别表示每个询问需要上交的最少过路费用。输入数据保证所有的城市是连通的。

 

样例输入 复制

4 5
1 2 10
1 3 20
1 4 100
2 4 30
3 4 10
2
1 4
4 1

样例输出 复制

20
20

提示

对于30%的数据,满足1≤ n≤10001≤m≤100001≤q≤100

对于50%的数据,满足1≤ n≤100001≤m≤100001≤q≤10000
  对于100%的数据,满足1≤ n≤100001≤m≤1000001≤q≤10000