#include<cmath>
#include<iostream>
using namespace std;
long long n,ans=0,num[100010];
struct EDGE
{
int pre;
int dis;
int to;
}edge[200010];
int edge_sum,head[100010];
void add_edge(int from,int dis,int to)
{
edge_sum++;
edge[edge_sum].pre=head[from];
edge[edge_sum].dis=dis;
edge[edge_sum].to=to;
head[from]=edge_sum;
}
void dfs(int u,int f)
{
num[u]=1;
for(int i=head[u];i!=0;i=edge[i].pre)
if(edge[i].to!=f)
{
int v=edge[i].to;
dfs(edge[i].to,u);
ans=ans+abs(2*num[v]-n)*edge[i].dis;
num[u]=num[u]+num[v];
}
}
int main()
{
cin>>n;
for(int i=1;i<=n-1;i++)
{
int u,v,w;
cin>>u>>v>>w;
add_edge(u,w,v);
add_edge(v,w,u);
}
dfs(1,1);
cout<<ans<<endl;
return 0;
}