#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;
//cout<<u<<" ";
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);
}
/*for(int i=1;i<=n;i++)
{
cout<<"head["<<i<<"]";
for(int j=head[i];j!=0;j=edge[j].pre)
cout<<"->"<<edge[j].to;
cout<<endl;
}*/
dfs(1,1);
//for(int i=1;i<=n;i++)cout<<num[i]<<" ";
cout<<ans<<endl;
return 0;
}