#include using namespace std; int N; vector> edges[200000]; int64_t ans = 0; int dfs(int i, int p){ int num = 1; for(auto& e : edges[i]){ if(e.first == p) continue; int add = dfs(e.first, i); ans += 2LL * e.second * add * (N-add); num += add; } return num; } int main(){ cin >> N; for(int i=0; i> a >> b >> c; edges[a-1].emplace_back(b-1, c); edges[b-1].emplace_back(a-1, c); } dfs(0, -1); cout << ans << endl; return 0; }