#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int n,v[101],g[101][101];
struct temp{
int r1,r2;
}tmp[101];
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
int u,v1,w;
cin>>u>>v1>>w;
v[i]=u;
tmp[i].r1=v1;
tmp[i].r2=w;
}
memset(g,0x3f,sizeof g);
for(int i=1;i<=n;i++){
if(tmp[i].r1!=0){
g[i][tmp[i].r1]=v[i];
g[tmp[i].r1][i]=v[tmp[i].r1];
}
if(tmp[i].r2!=0){
g[i][tmp[i].r2]=v[i];
g[tmp[i].r2][i]=v[tmp[i].r2];
}
}
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if( i!=j && g[i][k] != inf && g[k][j] != inf && g[i][j]>g[i][k]+g[k][j]){
g[i][j]=g[i][k]+g[k][j];
}
}
}
}
int minn=inf;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
minn=min(minn,g[i][j]);
}
}
cout<<minn;
}