1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 using namespace std;
5 const int MAXN=10001;
6 const int maxn=0x7fffffff;
7 int map[MAXN][MAXN];
8 int f[MAXN];
9 int w[MAXN];
10 int main()
11 {
12 int n;
13 scanf("%d",&n);
14 for(int i=1;i<=n;i++)
15 for(int j=1;j<=n;j++)
16 map[i][j]=maxn;
17 for(int i=1;i<=n;i++)
18 {
19 int p,x,y;
20 scanf("%d%d%d",&p,&x,&y);
21 w[i]=p;
22 if(x!=0)
23 map[i][x]=map[x][i]=1;
24 if(y!=0)
25 map[i][y]=map[y][i]=1;
26 }
27 for(int k=1;k<=n;k++)
28 {
29 for(int i=1;i<=n;i++)
30 {
31 for(int j=1;j<=n;j++)
32 {
33 if(map[i][k]!=maxn&&map[k][j]!=maxn)
34 {
35 if(map[i][j]>map[i][k]+map[k][j])
36 {
37 map[i][j]=map[i][k]+map[k][j];
38 }
39 }
40 }
41 }
42 }
43 int ans=maxn;
44 for(int i=1;i<=n;i++)
45 {
46 int now=0;
47 for(int j=1;j<=n;j++)
48 {
49 if(j!=i)
50 now=now+map[j][i]*w[j];
51 }
52 if(now<ans)
53 ans=now;
54 }
55 printf("%d",ans);
56 return 0;
57 }