def Floyd_Warshall(dist): n = len(dist) for k in range(n): for i in range(n): for j in range(n): dist[i][j] = min(dist[i][j], dist[i][k]+ dist[k][j]) n = int(input()) s = [0]*n for i in range(n): s[i] = int(input()) INF = 10**9 dist = [[INF]*n for _ in range(n)] m = int(input()) for _ in range(m): a,b,c = map(int,input().split()) dist[a][b] = dist[b][a] = c Floyd_Warshall(dist) ans = INF for i in range(1,n-1): for j in range(1,n-1): if i==j: continue d = dist[0][i] + dist[i][j] + dist[j][n-1] + s[i] + s[j] ans = min(ans,d) print(ans)