n=int(input()) e=[[] for i in range(n)] for i in range(n-1): u,v,w=map(int,input().split()) e[u]+=[(v,w)] e[v]+=[(u,w)] v=[0]*n d=[0]*n p=[0]*n g=[0]*n q=[0] while len(q)>0: s=q[-1] if v[s]==0: v[s]=1 for t,w in e[s]: if v[t]==0: d[t]=d[s]+1 p[t]=s g[t]=g[s]+w q+=[t] else: q.pop() p=[p[:]] for i in range(1,20): p+=[[p[-1][p[-1][j]] for j in range(n)]] def lca(a,b): if d[a]>d[b]: a,b=b,a for i in reversed(range(20)): if d[p[i][b]]>=d[a]: b=p[i][b] for i in reversed(range(20)): if p[i][a]!=p[i][b]: a=p[i][a] b=p[i][b] c=a if a!=b: c=p[0][c] return c def solve(x,y,z): o1=lca(y,z) o2=lca(x,o1) if o2==x: return (g[o1]-g[x])+(g[y]-g[o1])+(g[z]-g[o1]) if d[o2]<=d[o1]: return (g[x]-g[o2])+(g[y]-g[o1])+(g[z]-g[o1])+(g[o1]-g[o2]) return solve(y,z,x) Q=int(input()) for _ in range(Q): x,y,z=map(int,input().split()) print(solve(x,y,z))