void dfs(int cur, int father)
{
sum[cur] = 1;
for(int i = 0; i < tree[cur].size(); i++)
{
int son = tree[cur][i].v;
ll len = tree[cur][i].w;
if(father == son)
continue;
dfs(son, cur);
sum[cur] += sum[son];
dp[cur] += ((dp[son]%mod) + ((n-sum[son])%mod)*sum[son] * len)%mod;
dp[cur]=dp[cur]%mod;
}
}