#include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() template inline bool chmax(A &a, B b) { if (a inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; } typedef unsigned long long ull; typedef long long ll; typedef pair pii; typedef pair pll; typedef pair P; const ll INF = 1ll<<29; const ll MOD = 1000000007; const double EPS = 1e-10; int n, m; int s[50]; vector g[50]; int d[50][50]; int main() { cin >> n; REP(i, n) scanf("%d", s + i); cin >> m; fill(d[0], d[n], INF); REP(i, m) { int a, b, c; scanf("%d %d %d", &a, &b, &c); d[a][b] = c; d[b][a] = c; } REP(i, n) d[i][i] = 0; REP(k, n) REP(i, n) REP(j, n) chmin(d[i][j], d[i][k] + d[k][j]); int ans = INF; FOR(i, 1, n - 1) FOR(j, 1, n - 1) if (i != j) { if (d[0][i] == INF || d[i][j] == INF || d[j][n - 1] == INF) continue; chmin(ans, d[0][i] + d[i][j] + d[j][n - 1] + s[i] + s[j]); } cout << ans << endl; return 0; }