#include<bits/stdc++.h>
#define int long long
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define F first
#define S second
#define vi vector<int>
#define pii pair<int,int>
#define f0r(i,n) for(int i = 0; i < n; i++)
#define FOR(i,k,n) for(int i = k; i < n; i++)
#define dout(x) cout<<x<<' '<<#x<<endl
#define dout2(x,y) cout<<x<<' '<<#x<<' '<<y<<' '<<#y<<endl
#define vout(v) cout<<#v<<": "; for(auto u : v)cout<<u<<' '; cout<<endl
using namespace std;
const int mxn = 5005;
int par[mxn], h[mxn], c[mxn], dp[mxn][mxn]; vi adj[mxn];
void solve(int node){
for(auto u : adj[node])solve(u); f0r(x,mxn){
int sum = 0; for(auto u : adj[node])sum += dp[u][x]; dp[node][x] = sum + c[node]; if(x == h[node])dp[node][x] = sum;
} FOR(i,1,mxn)dp[node][i] = min(dp[node][i], dp[node][i-1]);
}
signed main(){
int n; cin>>n; f0r(i,n)cin>>par[i]>>h[i]>>c[i], par[i]--; FOR(i,1,n)adj[par[i]].pb(i); set<int>s; f0r(i,n)s.insert(h[i]);
map<int,int> cmp; int ptr = s.size(); for(auto u : s)cmp[u]=ptr, ptr--; f0r(i,n)h[i]=cmp[h[i]];
f0r(i,n)f0r(j,mxn)dp[i][j]=4e18; solve(0); int ans = 4e18; f0r(i,mxn)ans = min(ans, dp[0][i]); cout<<ans<<'\n';
}