#include using namespace std; int main(){ int N, M; cin >> N; vector S(N); for (int& x : S) cin >> x; cin >> M; vector> D(N, vector(N, INT_MAX/4)); for (int i = 0; i < N; i++) D[i][i] = 0; for (int i = 0; i < M; i++){ int u, v, w; cin >> u >> v >> w; D[u][v] = D[v][u] = w; } for (int k = 0; k < N; k++){ for (int i = 0; i < N; i++){ for (int j = 0; j < N; j++){ D[i][j] = min(D[i][j], D[i][k]+D[k][j]); } } } int ans = INT_MAX; for (int i = 0; i < N; i++){ for (int j = 0; j < N; j++){ if (i == 0 || j == 0 || i == N-1 || j == N-1 || i == j) continue; ans = min(ans, S[i]+S[j]+D[0][i]+D[i][j]+D[j][N-1]); } } cout << ans << endl; }