#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef tuple tp; typedef vector vt; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e8; const ll INF=1e16; int dx[]={0,1,0,-1,0,2,0,-2}; int dy[]={1,0,-1,0,2,0,-2,0}; int main(){ int n; cin>>n; vi s(n); rep(i,n)cin>>s[i]; int m; cin>>m; vvi cost(n,vi(n,inf)); while(m--){ int a,b,c; cin>>a>>b>>c; cost[a][b]=cost[b][a]=c; } rep(k,n)rep(i,n)rep(j,n)cost[i][j]=min(cost[i][j],cost[i][k]+cost[k][j]); int out=inf; loop(i,1,n-1)loop(j,1,n-1)if(i!=j)out=min(out,s[i]+s[j]+cost[0][i]+cost[i][j]+cost[j][n-1]); cout<