#include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair P; typedef pair P3; typedef pair PP; constexpr ll MOD = ll(1e9 + 7); constexpr int IINF = INT_MAX; constexpr ll LLINF = LLONG_MAX; constexpr int MAX_N = int(1e5) + 5; constexpr double EPS = 1e-9; constexpr int di[] = {0, 1, 0, -1}, dj[] = {1, 0, -1, 0}; #define REP(i, n) for (int i = 0; i < n; i++) #define REPR(i, n) for (int i = n; i >= 0; i--) #define SORT(v) sort((v).begin(), (v).end()) #define SORTR(v) sort((v).rbegin(), (v).rend()) #define ALL(v) (v).begin(), (v).end() vector > g; ll n; ll ans = 0; ll dfs(int v, int p){ ll res = 0; for(auto e : g[v]){ int u = e.first; if(u == p) continue; ll cnt = dfs(u, v); ans += cnt*(n-cnt)*e.second; res += cnt; } return res+1; } int main() { cin >> n; g.resize(n); for(int i=0;i> u >> v >> w; u--; v--; g[u].push_back({v, w}); g[v].push_back({u, w}); } dfs(0,-1); cout << ans*2 << endl; return 0; }