#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
const int N = 1e5 + 5;
int a[N];
long long ans = 0;
vector<pair<int, int>> vec[N];
void dfs(int nod, int papa, int benzina) {
if (benzina < 0) {
return;
}
ans ++;
for (auto i : vec[nod]) {
if (i.first != papa) {
dfs(i.first, nod, benzina + a[nod] - i.second);
}
}
}
signed main() {
int n;
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
}
for (int i = 1; i < n; i ++) {
int u, v, w;
cin >> u >> v >> w;
vec[u].push_back({v, w});
vec[v].push_back({u, w});
}
for (int i = 1; i <= n; i ++) {
dfs(i, 0, 0);
}
cout << ans - n << '\n';
}