#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+10;
int e[N<<1], h[N], nxt[N<<1], w[N], idx=1;
void add(int a, int b, int c){
e[idx]=b, w[idx] = c, nxt[idx] = h[a], h[a] = idx++;
}
int sz[N], f[N], n;
void dfs(int u, int fa) {
for(int i=h[u]; i; i= nxt[i]){
int son = e[i];
if (son == fa)
continue;
dfs(son, u);
sz[u] += sz[son];
f[u] += f[son] + sz[son] * w[i];
}
}
int ans;
void dfs2(int u, int fa){
for(int i=h[u]; i; i= nxt[i]){
int son = e[i];
if (son == fa)
continue;
f[son] = f[u] + (sz[1]-2*sz[son]) * w[i];
ans = min(ans, f[son]);
dfs2(son, u);
}
}
signed main() {
cin>>n;
for(int i=1;i<=n;++i)
cin>>sz[i];
for(int i=1;i<n;++i) {
int x,y, c;
cin>>x>>y>>c;
add(x, y, c), add(y, x, c);
}
dfs(1, 0);
ans = f[1];
dfs2(1, 0);
cout<<ans;
}