#87. 装满的油箱

装满的油箱

题目描述

N\red{N}个城市(编号01N1\red{0、1…N-1})和M\red{M}条道路,构成一张无向图。

在每个城市里边都有一个加油站,不同的加油站的单位油价不一样。

现在你需要回答不超过100\red{100}个问题,在每个问题中,请计算出一架油箱容量为C\red{C}的车子,从起点城市S\red{S}开到终点城市E至少要花多少油钱?

输入格式

第一行包含两个整数N\red{N}M\red{M}

第二行包含N\red{N}个整数,代表N\red{N}个城市的单位油价,第i\red{i}个数即为第i\red{i}个城市的油价pi\red{p_i}

接下来M\red{M}行,每行包括三个整数u,v,d\red{u,v,d},表示城市u\red{u}与城市v\red{v}之间存在道路,且车子从u\red{u}v\red{v}需要消耗的油量为d\red{d}

接下来一行包含一个整数q\red{q},代表问题数量。

接下来q\red{q}行,每行包含三个整数CSE\red{C、S、E},分别表示车子油箱容量、起点城市S\red{S}、终点城市E\red{E}

输出格式

对于每个问题,输出一个整数,表示所需的最少油钱。

如果无法从起点城市开到终点城市,则输出”impossible”

每个结果占一行。

样例

输入样例

5 5
10 10 20 12 13
0 1 9
0 2 8
1 2 1
1 3 11
2 3 7
2
10 0 3
20 1 4

输出样例

170
impossible

提示

1N1000\red{1≤N≤1000},

1M10000\red{1≤M≤10000},

1pi100\red{1≤p_i≤100},

1d100\red{1≤d≤100},

1C100\red{1≤C≤100}

注意: 假定车子初始时油箱是空的。