#include<iostream>
#include<queue>
using namespace std;
int minn=100000000;
int n;
struct node
{
int left,right,people,way;
}a[1009];
void check(int i)
{
int sum=0;
queue<node> q;
node u;
u.left=a[i].left;
u.right=a[i].right;
u.people=a[i].people;
u.way=0;
q.push(u);
while(!q.empty())
{
node u=q.front();
q.pop();
int xx=u.left;
int yy=u.right;
int zz=u.people;
int pp=u.way;
sum+=zz*pp;
if(xx!=0)
{
node p;
p.left=a[xx].left;
p.right=a[xx].right;
p.way=pp+1;
p.people=a[xx].people;
q.push(p);
}
if(yy!=0)
{
node p;
p.left=a[yy].left;
p.right=a[yy].right;
p.way=pp+1;
p.people=a[yy].people;
q.push(p);
}
}
minn=min(minn,sum);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].people>>a[i].left>>a[i].right;
for(int i=1;i<=n;i++)
check(i);
cout<<minn;
return 0;
}