#include #define rep(i,a,b) for(int i=int(a);i> N; vectorS(N); rep(i,0,N)cin >> S[i]; ll dist[N][N]; rep(i,0,N)rep(j,0,N)dist[i][j] = INF; rep(i,0,N)dist[i][i] = 0; cin >> M; rep(i,0,M){ int a,b,c; cin >> a >> b >> c; dist[a][b] = dist[b][a] = c; } rep(i,0,N)rep(j,0,N)rep(k,0,N){ dist[j][k] = min(dist[j][k], dist[j][i] + dist[i][k]); } ll mini = INF; rep(i,1,N-1)rep(j,1,N-1){ if(i == j)continue; mini = min(mini, dist[0][i] + dist[i][j] + dist[j][N-1] + S[i] + S[j]); } cout << mini << endl; }