#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
using ll = long long;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
const ll mod = 1e9 + 7;
const ll mod2 = 998244353;
ll gcd(ll a, ll b) {
return b ? gcd(b, a % b) : a;
}
ll pow(ll a, ll b) {
ll ans = 1;
while (b) {
if (b & 1)
ans *= a;
b >>= 1;
a *= a;
}
return ans;
}
ll pow(ll a, ll b, ll c) {
ll ans = 1;
while (b) {
if (b & 1)
ans = (ans * a) % c;
b >>= 1;
a = (a * a) % c;
}
return ans;
}
vector<ll> seiveoferasthones(ll n) {
vector<bool> prime(n + 1, true);
prime[0] = false;
prime[1] = false;
for (int i = 2; i * i <= n; i++) {
if (prime[i]) {
for (int j = i * i; j <= n; j += i) {
prime[j] = false;
}
}
}
vector<ll> primes;
for (ll i = 2; i <= n; i++) {
if (prime[i]) {
primes.push_back(i);
}
}
return primes;
}
void check(bool b) {
cout << (b ? "Yes\n" : "No\n");
}
// DFS
void dfs(vector<vector<ll>> &adj, vector<bool> &visited, ll s) {
if (visited[s]) return;
visited[s] = true;
for (auto u : adj[s]) {
dfs(adj, visited, u);
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
// cin >> t;
while (t--) {
ll n;
cin >> n;
vector<ll> vec(n + 1);
for (int i = 1; i <= n; i++) {
cin >> vec[i];
}
vector<vector<pair<ll, ll>>> adj(n + 1);
map<pair<ll, ll>, ll> mpp;
for (int i = 0; i < n - 1; i++) {
ll a, b, c;
cin >> a >> b >> c;
mpp[{a, b}] = c;
mpp[{b, a}] = c;
adj[a].push_back({b, c});
adj[b].push_back({a, c});
}
queue<ll> q1;
vector <ll> pushed(n+1,0);
ll root = 1;
for (int i = 2; i <= n; i++) {
if (adj[i].size() == 1) {
q1.push(i);
pushed[i]= 1;
}
}
queue<ll> q;
vector<bool> visited(n + 1, false);
vector<ll> parent(n + 1, 0);
visited[root] = true;
q.push(root);
while (!q.empty()) {
ll s = q.front();
q.pop();
for (auto u : adj[s]) {
if (!visited[u.first]) {
visited[u.first] = true;
parent[u.first] = s;
q.push(u.first);
}
}
}
ll ans = 0;
while (!q1.empty()) {
ll s = q1.front();
q1.pop();
if (parent[s] == 0) continue;
ans += mpp[{s, parent[s]}] * abs(vec[s]);
vec[parent[s]] += vec[s];
vec[s] = 0;
if (parent[s] != 0 && pushed[parent[s]] == 0) {
q1.push(parent[s]);
pushed[parent[s]] = 1;
}
}
cout << ans << '\n';
}
return 0;
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KCnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKCmNvbnN0IGxsIG1vZCA9IDFlOSArIDc7CmNvbnN0IGxsIG1vZDIgPSA5OTgyNDQzNTM7CgpsbCBnY2QobGwgYSwgbGwgYikgewogICAgcmV0dXJuIGIgPyBnY2QoYiwgYSAlIGIpIDogYTsKfQoKbGwgcG93KGxsIGEsIGxsIGIpIHsKICAgIGxsIGFucyA9IDE7CiAgICB3aGlsZSAoYikgewogICAgICAgIGlmIChiICYgMSkKICAgICAgICAgICAgYW5zICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgICAgICBhICo9IGE7CiAgICB9CiAgICByZXR1cm4gYW5zOwp9CgpsbCBwb3cobGwgYSwgbGwgYiwgbGwgYykgewogICAgbGwgYW5zID0gMTsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKQogICAgICAgICAgICBhbnMgPSAoYW5zICogYSkgJSBjOwogICAgICAgIGIgPj49IDE7CiAgICAgICAgYSA9IChhICogYSkgJSBjOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKdmVjdG9yPGxsPiBzZWl2ZW9mZXJhc3Rob25lcyhsbCBuKSB7CiAgICB2ZWN0b3I8Ym9vbD4gcHJpbWUobiArIDEsIHRydWUpOwogICAgcHJpbWVbMF0gPSBmYWxzZTsKICAgIHByaW1lWzFdID0gZmFsc2U7CiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaWYgKHByaW1lW2ldKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8PSBuOyBqICs9IGkpIHsKICAgICAgICAgICAgICAgIHByaW1lW2pdID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICB2ZWN0b3I8bGw+IHByaW1lczsKICAgIGZvciAobGwgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaWYgKHByaW1lW2ldKSB7CiAgICAgICAgICAgIHByaW1lcy5wdXNoX2JhY2soaSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHByaW1lczsKfQoKdm9pZCBjaGVjayhib29sIGIpIHsKICAgIGNvdXQgPDwgKGIgPyAiWWVzXG4iIDogIk5vXG4iKTsKfQoKLy8gREZTCnZvaWQgZGZzKHZlY3Rvcjx2ZWN0b3I8bGw+PiAmYWRqLCB2ZWN0b3I8Ym9vbD4gJnZpc2l0ZWQsIGxsIHMpIHsKICAgIGlmICh2aXNpdGVkW3NdKSByZXR1cm47CiAgICB2aXNpdGVkW3NdID0gdHJ1ZTsKICAgIGZvciAoYXV0byB1IDogYWRqW3NdKSB7CiAgICAgICAgZGZzKGFkaiwgdmlzaXRlZCwgdSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgY291dC50aWUobnVsbHB0cik7CgogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgbGwgbjsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICB2ZWN0b3I8bGw+IHZlYyhuICsgMSk7IAogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBjaW4gPj4gdmVjW2ldOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8dmVjdG9yPHBhaXI8bGwsIGxsPj4+IGFkaihuICsgMSk7CiAgICAgICAgbWFwPHBhaXI8bGwsIGxsPiwgbGw+IG1wcDsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIGxsIGEsIGIsIGM7CiAgICAgICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKICAgICAgICAgICAgbXBwW3thLCBifV0gPSBjOwogICAgICAgICAgICBtcHBbe2IsIGF9XSA9IGM7CiAgICAgICAgICAgIGFkalthXS5wdXNoX2JhY2soe2IsIGN9KTsKICAgICAgICAgICAgYWRqW2JdLnB1c2hfYmFjayh7YSwgY30pOwogICAgICAgIH0KCiAgICAgICAgcXVldWU8bGw+IHExOwogICAgICAgIHZlY3RvciA8bGw+IHB1c2hlZChuKzEsMCk7CiAgICAgICAgbGwgcm9vdCA9IDE7CiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChhZGpbaV0uc2l6ZSgpID09IDEpIHsKICAgICAgICAgICAgICAgIHExLnB1c2goaSk7CiAgICAgICAgICAgICAgICBwdXNoZWRbaV09IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHF1ZXVlPGxsPiBxOwogICAgICAgIHZlY3Rvcjxib29sPiB2aXNpdGVkKG4gKyAxLCBmYWxzZSk7CiAgICAgICAgdmVjdG9yPGxsPiBwYXJlbnQobiArIDEsIDApOwogICAgICAgIHZpc2l0ZWRbcm9vdF0gPSB0cnVlOwogICAgICAgIHEucHVzaChyb290KTsKICAgICAgICB3aGlsZSAoIXEuZW1wdHkoKSkgewogICAgICAgICAgICBsbCBzID0gcS5mcm9udCgpOwogICAgICAgICAgICBxLnBvcCgpOwogICAgICAgICAgICBmb3IgKGF1dG8gdSA6IGFkaltzXSkgewogICAgICAgICAgICAgICAgaWYgKCF2aXNpdGVkW3UuZmlyc3RdKSB7CiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFt1LmZpcnN0XSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcGFyZW50W3UuZmlyc3RdID0gczsKICAgICAgICAgICAgICAgICAgICBxLnB1c2godS5maXJzdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGwgYW5zID0gMDsKICAgICAgICB3aGlsZSAoIXExLmVtcHR5KCkpIHsKICAgICAgICAgICAgbGwgcyA9IHExLmZyb250KCk7CiAgICAgICAgICAgIHExLnBvcCgpOwogICAgICAgICAgICBpZiAocGFyZW50W3NdID09IDApIGNvbnRpbnVlOyAKCiAgICAgICAgICAgIGFucyArPSBtcHBbe3MsIHBhcmVudFtzXX1dICogYWJzKHZlY1tzXSk7CiAgICAgICAgICAgIHZlY1twYXJlbnRbc11dICs9IHZlY1tzXTsKICAgICAgICAgICAgdmVjW3NdID0gMDsKICAgICAgICAgICAgaWYgKHBhcmVudFtzXSAhPSAwICYmIHB1c2hlZFtwYXJlbnRbc11dID09IDApIHsKICAgICAgICAgICAgICAgIHExLnB1c2gocGFyZW50W3NdKTsKICAgICAgICAgICAgICAgIHB1c2hlZFtwYXJlbnRbc11dID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=