为什么只AC了两个点!?
求大佬帮助
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
const int N=1e6+1;
int n,cnt,q[N][3];
long long sum;
vector<int>v[N];
inline void dfs(int x,int fa)
{
cnt++;
for(int i=0;i<v[x].size();i++)
{
int o=v[x][i];
if(o==fa) continue;
dfs(o,x);
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<n;i++)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
v[a].push_back(b);
v[b].push_back(a);
q[i][0]=a;
q[i][1]=b;
q[i][2]=c;
}
for(int i=1;i<n;i++)
{
cnt=0;
dfs(q[i][0],q[i][1]);
sum+=abs(n-cnt-cnt)*q[i][2];
}
printf("%d",sum);
return 0;
}