from heapq import heappush, heappop N=int(raw_input()) S=[0 for i in range(N)] for i in range(N): S[i]=int(raw_input()) M=int(raw_input()) graph=[[10000000 for i in range(N)] for j in range(N)] for i in range(M): A,B,C = map(int, raw_input().split()) graph[A][B]=C graph[B][A]=C for i in range(N): for j in range(N): for k in range(N): graph[j][k] = min(graph[j][k],graph[j][i]+graph[i][k]); ans = 100000 for i in range(1,N-1): for j in range(1, N-1): if i== j: continue ans = min(ans, S[i]+S[j]+graph[0][i]+graph[i][j]+graph[j][N-1]) print ans