#include<iostream>
#include<cmath>
using namespace std;
struct node
{
int father, left, right, value;
}h[105];
int ans = INT16_MAX, sum, vis[105];
void dfs(int pos, int step)
{
sum += step * h[pos].value;
int fa = h[pos].father, l = h[pos].left, r = h[pos].right;
if (fa && vis[fa] != 1)
{
vis[fa] = 1;
dfs(fa, step+1);
}
if (l && vis[l] != 1)
{
vis[l] = 1;
dfs(l, step+1);
}
if (r && vis[r] != 1)
{
vis[r] = 1;
dfs(r, step+1);
}
}
int main()
{
int cnt;
cin >> cnt;
for (int i = 1; i <= cnt; i++)
{
cin >> h[i].value >> h[i].left >> h[i].right;
h[h[i].left].father = i;
h[h[i].right].father = i;
}
for (int j = 1; j <= cnt; j++)
{
sum = 0;
memset(vis, 0, sizeof(vis));
vis[j] = 1;
dfs(j, 0);
ans = min(ans, sum);
}
cout << ans;
}