#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<vector<int>> ch(n + 1);
vector<int> H(n + 1), C(n + 1), vals;
int total = 0;
for (int i = 1; i <= n; i++) {
int a;
cin >> a >> H[i] >> C[i];
total += C[i];
vals.push_back(H[i]);
if (a != i) ch[a].push_back(i);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
int m = vals.size();
vector<int> id(n + 1);
for (int i = 1; i <= n; i++) {
id[i] = lower_bound(vals.begin(), vals.end(), H[i]) - vals.begin();
}
vector<vector<int>> dp(n + 1, vector<int>(m, 0));
function<void(int)> dfs = [&](int u) {
for (int v : ch[u]) dfs(v);
vector<int> sum(m, 0);
for (int v : ch[u]) {
for (int x = 0; x < m; x++) {
sum[x] += dp[v][x];
}
}
int keep = C[u] + sum[id[u]];
for (int x = 0; x < m; x++) {
dp[u][x] = sum[x];
if (x <= id[u]) dp[u][x] = max(dp[u][x], keep);
}
};
dfs(1);
cout << total - dp[1][0] << '\n';
return 0;
}