#include<bits/stdc++.h>
using namespace std;
int a[100010];
vector<int>g[100010];
int vis[100010],p,q,sum;
int dfs(int pos,int sd){
vis[pos]=0;
sum=sum+a[pos]*sd;
for(int i=0;i<g[pos].size();i++){
if(vis[g[pos][i]]){
vis[g[pos][i]]=0;
dfs(g[pos][i],sd+1);
}
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
cin>>p>>q;
if(p){
g[i].push_back(p);
g[p].push_back(i);
}
if(q){
g[i].push_back(q);
g[q].push_back(i);
}
}
int mino=0x7fffff;
for(int i=1;i<=n;i++){
memset(vis,true,sizeof(vis));
dfs(i,0);
mino=min(sum,mino);
sum=0;
}
cout<<mino;
return 0;
}
全RE求助!!!