Problem:
 Score : 500 points    Problem Statement There are N towns numbered 1 to N and M roads. The i -th road connects Town A_i and Town B_i bidirectionally and has a length of C_i .  Takahashi will travel between these towns by car, passing through these roads. The fuel tank of his car can contain at most L liters of fuel, and one liter of fuel is consumed for each unit distance traveled. When visiting a town while traveling, he can full the tank (or choose not to do so). Travel that results in the tank becoming empty halfway on the road cannot be done.  Process the following Q queries:   The tank is now full. Find the minimum number of times he needs to full his tank while traveling from Town s_i to Town t_i . If Town t_i is unreachable, print -1 .       Constraints  All values in input are integers.  2 \leq N \leq 300  0 \leq M \leq \frac{N(N-1)}{2}  1 \leq L \leq 10^9  1 \leq A_i, B_i \leq N  A_i \neq B_i  \left(A_i, B_i\right) \neq \left(A_j, B_j\right) (if i \neq j )  \left(A_i, B_i\right) \neq \left(B_j, A_j\right) (if i \neq j )  1 \leq C_i \leq 10^9  1 \leq Q \leq N\left(N-1\right)  1 \leq s_i, t_i \leq N  s_i \neq t_i  \left(s_i, t_i\right) \neq \left(s_j, t_j\right) (if i \neq j )         Input Input is given from Standard Input in the following format:  N  M  L  A_1  B_1  C_1  :  A_M  B_M  C_M  Q  s_1  t_1  :  s_Q  t_Q       Output Print Q lines.  The i -th line should contain the minimum number of times the tank needs to be fulled while traveling from Town s_i to Town t_i . If Town t_i is unreachable, the line should contain -1 instead.        Sample Input 1 3 2 5
1 2 3
2 3 3
2
3 2
1 3      Sample Output 1 0
1  To travel from Town 3 to Town 2 , we can use the second road to reach Town 2 without fueling the tank on the way.  To travel from Town 1 to Town 3 , we can first use the first road to get to Town 2 , full the tank, and use the second road to reach Town 3 .       Sample Input 2 4 0 1
1
2 1      Sample Output 2 -1  There may be no road at all.       Sample Input 3 5 4 4
1 2 2
2 3 2
3 4 3
4 5 2
20
2 1
3 1
4 1
5 1
1 2
3 2
4 2
5 2
1 3
2 3
4 3
5 3
1 4
2 4
3 4
5 4
1 5
2 5
3 5
4 5      Sample Output 3 0
0
1
2
0
0
1
2
0
0
0
1
1
1
0
0
2
2
1
0

Solution (Python):
import subprocess
import gzip, base64, os
import stat

gz = b'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'
bin = gzip.decompress(base64.b64decode(gz))
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
with open(pymain, "wb") as f:
    f.write(bin)
os.chmod(pymain, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
if p == "":
    pymain = "./" + pymain
subprocess.call(pymain)



'''

import numpy as np
i8 = np.int64
i4 = np.int32

def floyd_warshall(graph):
    n = graph.shape[0]
    for k in range(n):
        for i in range(n):
            for j in range(n):
                if graph[i, j] > graph[i, k] + graph[k, j]:
                    graph[i, j] = graph[i, k] + graph[k, j]

def clac(graph, L, inf):
    for i in range(graph.shape[0]):
        for j in range(graph.shape[1]):
            graph[i, j] = inf if graph[i, j] > L else 1

def main2():
    inf = 10**10
    stdin = open('/dev/stdin')
    N, M, L = map(int, stdin.readline().split())
    graph = np.empty((N, N), i8)
    for i in range(N):
        for j in range(N):
            graph[i, j] = inf
    for _ in range(M):
        a, b, c = map(int, stdin.readline().split())
        graph[a - 1, b - 1] = c
        graph[b - 1, a - 1] = c
    Q = int(stdin.readline())
    s = np.empty(Q, i8)
    t = np.empty(Q, i8)
    for i in range(Q):
        s[i], t[i] = map(int, stdin.readline().split())

    floyd_warshall(graph)
    clac(graph, L, inf)
    floyd_warshall(graph)
    graph[graph > L] = 0
    x = []
    for i in range(Q):
        x.append(str(graph[s[i] - 1, t[i] - 1] - 1))
    print('\n'.join(x))
'''