import heapq N=int(input()) S=[int(input()) for i in range(N)] M=int(input()) # グラフの最短距離を全て求める(ワーシャル–フロイド法) Distance=[[float("inf") for i in range(N)] for j in range(N)] for i in range(M): A,B,C=map(int,input().split()) Distance[A][B]=C Distance[B][A]=C for k in range(N): # k個までの町を使ってのDisが知れているときに for i in range(N): # 町iと for j in range(N): # 町jとの最短距離は、 length=Distance[i][k]+Distance[j][k] if Distance[i][j]>length: Distance[i][j]=Distance[j][i]=length ANS=1<<60 for i in range(1,N-1): for j in range(i+1,N-1): ANS=min(ANS,Distance[0][i]+Distance[i][j]+Distance[j][N-1]+S[i]+S[j]) ANS=min(ANS,Distance[0][j]+Distance[i][j]+Distance[i][N-1]+S[i]+S[j]) print(ANS)