#include <bits/stdc++.h>
using namespace std;
struct node
{
int l,r,v,f;
}a[105];
int vis[105];
int sum,minn=INT_MAX,n;
int dfs(int step,int pos)
{
sum+=a[pos].v*step;
int f=a[pos].f,l=a[pos].l,r=a[pos].r;
if(f&&!vis[f])
{
vis[f]=1;
dfs(step+1,f);
}
if(l&&!vis[l])
{ vis[l]=1;
dfs(step+1,l);
}
if(r&&!vis[r])
{ vis[r]=1;
dfs(step+1,r);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].v>>a[i].l>>a[i].r;
a[a[i].l].f=i;
a[a[i].r].f=i;
}
for(int i=1;i<=n;i++)
{ sum=0;
memset(vis,0,sizeof(vis));
vis[i]=1;
dfs(0,i);
minn=min(minn,sum);
}
cout<<minn;
return 0;
}