祖国山河一片红(逃
#include <bits/stdc++.h>
using namespace std;
int m,n,q,co,wei;
const int maxn=1e6+5;
vector<pair<int,int> > g[maxn];
long long sum;
int son[maxn],len[maxn*2];
void dfs(int cur,int fa)
{
son[fa]++;
for(register int i=0;i<g[cur].size();i++)
{
if(g[cur][i].first!=fa)
{
dfs(g[cur][i].first,cur);
g[cur][i].second+=abs(n-1-son[g[cur][i].first])*len[g[cur][i].first];
}
}
}
int main()
{
scanf("%d",&m);
for(register int i=1;i<m;i++)
{
son[i]=1;
scanf("%d%d%d",&n,&q,&co);
len[q]=co;
g[n].push_back(make_pair(q,0));
}
dfs(1,0);
for(register int i=1;i<m;i++)
{
for(register int j=0;j<g[i].size();j++)
sum+=g[i][j].second;
}
printf("%lld",sum);
}```