#include <stdio.h>
#include <stdlib.h>
#include <utility>
using namespace std;
pair<int, int> info[100010];
int filhos[100010];
typedef pair<int, int> pii;
void make_set(int x){
info[x]=make_pair(x, 0);
filhos[x]=1;
}
int find_dad(int x){
if(info[x].first==x) return x;
else return find_dad(info[x].first);
}
void link(int x, int y){
x=find_dad(x), y=find_dad(y);
if(info[x].second>info[y].second){
info[y].first=info[x].first;
filhos[x]+=filhos[y];
}else if(info[x].second<info[y].second){
info[x].first=info[y].first;
filhos[y]+=filhos[x];
}else{
info[x].first=info[y].first;
info[x].second++;
filhos[y]+=filhos[x];
}
}
int main( ){
int n, a, b, c;
scanf("%d", &n);
long long int ans=n*(n-1)/2;
for(int i=1; i<=n; i++) make_set(i);
for(int i=0; i<n-1; i++){
scanf("%d %d %d", &a, &b, &c);
if(c==0) link(a, b);
}
for(int i=1; i<=n; i++){
if(info[i].first==i){
long long int p=filhos[i];
ans-=(long long int)p*(p-1)/2;
}
}
printf("%lld", ans);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHV0aWxpdHk+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKcGFpcjxpbnQsIGludD4gaW5mb1sxMDAwMTBdOwppbnQgZmlsaG9zWzEwMDAxMF07CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwoKdm9pZCBtYWtlX3NldChpbnQgeCl7CiAgICBpbmZvW3hdPW1ha2VfcGFpcih4LCAwKTsKICAgIGZpbGhvc1t4XT0xOwp9CgppbnQgZmluZF9kYWQoaW50IHgpewogICAgaWYoaW5mb1t4XS5maXJzdD09eCkgcmV0dXJuIHg7CiAgICBlbHNlIHJldHVybiBmaW5kX2RhZChpbmZvW3hdLmZpcnN0KTsKfQoKdm9pZCBsaW5rKGludCB4LCBpbnQgeSl7CiAgICB4PWZpbmRfZGFkKHgpLCB5PWZpbmRfZGFkKHkpOwogICAgaWYoaW5mb1t4XS5zZWNvbmQ+aW5mb1t5XS5zZWNvbmQpewogICAgICAgIGluZm9beV0uZmlyc3Q9aW5mb1t4XS5maXJzdDsKICAgICAgICBmaWxob3NbeF0rPWZpbGhvc1t5XTsKICAgIH1lbHNlIGlmKGluZm9beF0uc2Vjb25kPGluZm9beV0uc2Vjb25kKXsKICAgICAgICBpbmZvW3hdLmZpcnN0PWluZm9beV0uZmlyc3Q7CiAgICAgICAgZmlsaG9zW3ldKz1maWxob3NbeF07CiAgICB9ZWxzZXsKICAgICAgICBpbmZvW3hdLmZpcnN0PWluZm9beV0uZmlyc3Q7CiAgICAgICAgaW5mb1t4XS5zZWNvbmQrKzsKICAgICAgICBmaWxob3NbeV0rPWZpbGhvc1t4XTsKICAgIH0KfQoKaW50IG1haW4oICl7CiAgICBpbnQgbiwgYSwgYiwgYzsKICAgIHNjYW5mKCIlZCIsICZuKTsKICAgIGxvbmcgbG9uZyBpbnQgYW5zPW4qKG4tMSkvMjsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspIG1ha2Vfc2V0KGkpOwogICAgZm9yKGludCBpPTA7IGk8bi0xOyBpKyspewogICAgICAgIHNjYW5mKCIlZCAlZCAlZCIsICZhLCAmYiwgJmMpOwogICAgICAgIGlmKGM9PTApIGxpbmsoYSwgYik7CiAgICB9CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBpZihpbmZvW2ldLmZpcnN0PT1pKXsKICAgICAgICAgICAgbG9uZyBsb25nIGludCBwPWZpbGhvc1tpXTsKICAgICAgICAgICAgYW5zLT0obG9uZyBsb25nIGludClwKihwLTEpLzI7CiAgICAgICAgfQogICAgfQogICAgcHJpbnRmKCIlbGxkIiwgYW5zKTsKICAgIHJldHVybiAwOwp9