#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;
static vector<vector<pair<uint64_t, uint64_t>>> puu;
static uint64_t hitaammat(uint64_t s, uint64_t e, uint64_t vert) {
uint64_t summa = 0;
for (auto seur : puu[s]) {
if (seur.first == e)
continue;
if (seur.second < vert)
continue;
summa += hitaammat(seur.first, s, vert) + 1;
}
return summa;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
uint64_t n;
cin >> n;
puu.reserve(n);
for (uint64_t i = 0; i < n - 1; ++i) {
uint64_t a, b, nopeus;
cin >> a >> b >> nopeus;
puu[a - 1].push_back({b - 1, nopeus});
puu[b - 1].push_back({a - 1, nopeus});
}
uint64_t summa = 0;
for (uint64_t i = 0; i < n; ++i) {
for (auto& solmu : puu[i]) {
if (i > solmu.first)
continue;
summa += (hitaammat(i, solmu.first, solmu.second) + 1) * (hitaammat(solmu.first, i, solmu.second) + 1) * solmu.second;
solmu.second -= 1;
find_if(begin(puu[solmu.first]), end(puu[solmu.first]), [i](auto val){return val.first == i; })->second -= 1;
}
}
cout << summa << '\n';
}