#include <bits/stdc++.h>
using namespace std;
using cd = complex<double>;
const long long INF = 1e18;
const long long mod = 998244353;
const double Pi = acos(-1);
void Fastio() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
}
int n;
int dsu[200005][2], sz[200005][2];
int Root(int node, int id) {
  return dsu[node][id] == node ? node : dsu[node][id] = Root(dsu[node][id], id);
}
signed main() {
  Fastio();
  cin >> n;
  for (int i = 1; i <= n; i++) {
    dsu[i][0] = i;
    dsu[i][1] = i;
    sz[i][0] = 1;
    sz[i][1] = 1;
  }
  for (int i = 1; i <= n - 1; i++) {
    int u, v, c;
    cin >> u >> v >> c;
    sz[Root(v, c)][c] += sz[Root(u, c)][c];
    dsu[Root(u, c)][c] = Root(v, c);
  }
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    ans += 1ll * sz[Root(i, 0)][0] * sz[Root(i, 1)][1];
    --ans;
  }
  cout << ans;
}
