#include <iostream>
#include <cstring>
using namespace std;
struct node{
int id;
int n;
int t,l,r;
} poi[105];
int n;
int vis[105],ans=2147483647;
int getsum(int i,int h){
if(i==0||vis[i]==1) return 0;
vis[i]=1;
int sum=0;
sum+=getsum(poi[i].t,h+1);
sum+=getsum(poi[i].l,h+1);
sum+=getsum(poi[i].r,h+1);
return poi[i].n*h+sum;
}
int main() {
cin>>n;
for(int i=1;i<=n;i++){
cin>>poi[i].n>>poi[i].l>>poi[i].r;
poi[i].id=i;
poi[poi[i].l].t=i;
poi[poi[i].r].t=i;
}
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
ans=min(ans,getsum(i,0));
}
cout<<ans;
return 0;
}
(责任编辑:admin) |