/*
Author: Nguyen Chi Thanh - High School for the Gifted - VNU.HCM (i2528)
*/
#include <bits/stdc++.h>
using namespace std;
/* START OF TEMPALTE */
// #define int long long
#define ll long long
#define ull unsigned long long
#define ld long double
#define pii pair<int, int>
#define pll pair<ll, ll>
#define fi first
#define se second
#define popcount __builtin_popcountll
#define all(x) (x).begin(), (x).end()
#define BIT(x, i) (((x) >> (i)) & 1)
#define MASK(x) (1ll << (x))
#define SZ(a) ((int32_t)a.size())
#define debug(a, l, r) {for (int _i = (l); _i <= (r); ++_i) cout << (a)[_i] << ' '; cout << '\n';}
template<class X, class Y>
bool minimize(X &x, const Y &y) {
if (x > y) {
x = y;
return true;
} else return false;
}
template<class X, class Y>
bool maximize(X &x, const Y &y) {
if (x < y) {
x = y;
return true;
} else return false;
}
/* END OF TEMPALTE */
const int MAXN = 1e5 + 5;
const ll INF = (ll)1e18 + 5;
int n, s[MAXN], v[MAXN], parent[MAXN];
ll dp[MAXN], distToRoot[MAXN];
vector<pii> adj[MAXN];
void init() {
cin >> n;
for (int i = 1; i < n; ++i) {
int u, v, w; cin >> u >> v >> w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
}
for (int i = 2; i <= n; ++i) {
cin >> s[i] >> v[i];
}
}
void dfsPrepare(int u, int par = 0) {
parent[u] = par;
for (auto &e : adj[u]) {
int v = e.fi, w = e.se;
if (v == par) continue;
distToRoot[v] = distToRoot[u] + w;
dfsPrepare(v, u);
}
}
void dfsDP(int u, int par = 0) {
if (u != 1) {
int pre = parent[u];
while (pre) {
minimize(dp[u], s[u] + 1ll * v[u] * (distToRoot[u] - distToRoot[pre]) + dp[pre]);
// s[u] + v[u] * distToRoot[u] (fixed)
// -distToRoot[pre] * v[u] + dp[pre]
pre = parent[pre];
}
}
for (auto &e : adj[u]) {
int v = e.fi;
if (v == par) continue;
dfsDP(v, u);
}
}
void solve() {
dfsPrepare(1);
debug(distToRoot, 1, n);
fill(dp + 1, dp + n + 1, INF);
dp[1] = 0;
dfsDP(1);
for (int i = 2; i <= n; ++i)
cout << dp[i] << ' ';
}
signed main() {
#ifdef NCTHANH
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios_base::sync_with_stdio(0);
cin.tie(nullptr); cout.tie(nullptr);
init();
solve();
return 0;
}