#include<bits/stdc++.h>
using namespace std;
const long long M1=20000,M2=1e16;
long long n,dw[M1],ls[M1],rs[M1];
long long vi[M1],fg[M1],ct;
long long ans,o1=M2;
void dfs(long long id,long long ft){
fg[id]=ft;
if(ls[id]){
dfs(ls[id],id);
dw[id]+=dw[ls[id]];
vi[id]+=dw[ls[id]]+vi[ls[id]];
}
if(rs[id]){
dfs(rs[id],id);
dw[id]+=dw[rs[id]];
vi[id]+=dw[rs[id]]+vi[rs[id]];
}
}
void ds(long long id,long long lt,long long ct){
if(id==0){
return;
}
if(lt==ls[id]){
ans+=vi[rs[id]]+dw[rs[id]];
}
if(lt==rs[id]){
ans+=vi[ls[id]]+dw[ls[id]];
}
ans+=ct*(dw[1]-dw[lt]);
ds(fg[id],id,ct+1);
}
int main(){
scanf("%lld",&n);
for(long long i=1;i<=n;i++){
scanf("%lld%lld%lld",&dw[i],&ls[i],&rs[i]);
}
dfs(1,0);
long long num=0;
for(long long k=n;k>=1;k--){
ans=vi[k];
ds(fg[k],k,1);
o1=min(o1,ans);
if(o1==ans) num=k;
}
cout<<o1<<endl;
return 0;
}