#include<bits/stdc++.h>
using namespace std;
const int N=100;
struct Node{
vector<int> childs(4,1);
int size;
}g[N];
int a[N][N],n,len,temp=0,ans=0x3f3f3f3f;
void add(int u,int v,int z){
g[u].childs.push_back(v);
g[v].childs.push_back(u);
a[u][v]=a[v][u]=z;
}
void dfs(int fa,int rt,int l,int cut){
// cout<<rt<<' '<<l<<' '<<cut<<"\n";
temp+=cut;
for(int i=0;i<g[rt].childs.size();i++){
if(g[rt].childs[i]!=fa){
dfs(rt,g[rt].childs[i],l+1,cut=l*g[g[rt].childs[i]].size);
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int val,x,y;
cin>>val>>x>>y;
g[i].size=val;
if(x!=0) add(i,y,1);
if(y!=0) add(i,x,1);
}
for(int i=1;i<=n;i++){
dfs(0,i,1,0);
ans=min(ans,temp);
temp=0;
}
cout<<ans;
}