#include<bits/stdc++.h>
#define N 20050
using namespace std;
long long pre[N];
long long num[N]={0};
void init()
{
for(long long i=0;i<N;i++)pre[i]=i,num[i]=1;
}
long long Find(long long x)
{
long long boss=x;
while(pre[boss]!=boss)boss=pre[boss];
while(x!=boss)
{
long long now=pre[x];
pre[x]=boss;
x=now;
}
return boss;
}
struct ss
{
long long u,v,w;
bool operator < (const ss&s) const
{
return w<s.w;
}
};
ss edge[N];
int main()
{
long long n;
init();
scanf("%lld",&n);
for(long long i=1;i<n;i++)
{
scanf("%lld %lld %lld",&edge[i].u,&edge[i].v,&edge[i].w);
}
sort(edge+1,edge+n);
long long ans=0;
for(long long i=1;i<n;i++)
{
long long u=edge[i].u,v=edge[i].v;
ans+=(edge[i].w+1)*(num[Find(u)]*num[Find(v)]-1);
ans+=edge[i].w;
num[Find(v)]+=num[Find(u)];
pre[Find(u)]=Find(v);
}
printf("%lld\n",ans);
return 0;
}