#coding: utf-8 #yuki_17 INF=float("inf") n=int(raw_input()) s=[int(raw_input()) for i in xrange(n)] m=int(raw_input()) d=[[INF for i in xrange(n)] for j in xrange(n)] for i in xrange(m): a,b,c=map(int,raw_input().split()) d[a][b]=d[b][a]=c for k in xrange(n): for i in xrange(n): for j in xrange(n): d[i][j]=min(d[i][j],d[i][k]+d[k][j]) res=INF for i in xrange(1,n-1): for j in xrange(1,n-1): if i==j: continue cost=d[0][i]+d[i][j]+d[j][n-1]+s[i]+s[j] res=min(res,cost) print res