#include #include using namespace std; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) int N, M; int S[51]; int wf[51][51]; const int INF = 1<<24; int main(){ cin >> N; REP(i,N) cin >> S[i]; cin >> M; REP(i,N){ REP(j,N) wf[i][j] = INF; wf[i][i] = 0; } REP(i,M){ int A,B,C; cin >> A >> B >> C; wf[A][B] = wf[B][A] = C; } REP(k,N) REP(i,N) REP(j,N){ wf[i][j] = min(wf[i][j], wf[i][k] + wf[k][j]); } int minv = INF; for(int i = 1; i < N-1; i++){ for(int j = 1; j < N-1; j++){ if(i == j) continue; minv = min(minv, wf[0][i] + wf[i][j] + wf[j][N-1] + S[i] + S[j]); } } cout << minv << endl; return 0; }