#include #include #include #include #include #define llint long long using namespace std; struct edge{ llint to, cost; edge(); edge(llint a, llint b){ to = a, cost = b; } }; llint n; vector G[200005]; llint ans = 0; llint dfs(llint v, llint p) { llint ret = 1; for(int i = 0; i < G[v].size(); i++){ if(G[v][i].to == p) continue; llint res = dfs(G[v][i].to, v); ans += G[v][i].cost * res * (n-res); ret += res; } return ret; } int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; llint u, v, w; for(int i = 0; i < n-1; i++){ cin >> u >> v >> w; G[u].push_back(edge(v, w)); G[v].push_back(edge(u, w)); } dfs(1, -1); cout << ans*2 << endl; return 0; }