#include <bits/stdc++.h>
using namespace std;
#define int long long
int p[200005], sum[200005], n, res;
int find(int x)
{
if (p[x] != x)
p[x] = find(p[x]);
return p[x];
}
void merge(int a,int b)
{
a = find(a), b = find(b);
if (a == b)
return;
p[a] = b;
sum[b] += sum[a];
}
bool ck(int x)
{
while (x)
{
if (x % 10 != 7 && x % 10 != 4)
return false;
x /= 10;
}
return true;
}
int32_t main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
p[i] = i;
sum[i] = 1;
}
for (int i = 1; i < n; i++)
{
int a, b, c;
cin >> a >> b >> c;
if (!ck(c))
merge(a, b);
}
for (int i = 1; i <= n; i++)
{
int t = n - sum[find(i)];
res += t * (t - 1);
}
cout << res << endl;
}
1517D - Explorer Space | 1230B - Ania and Minimizing |
1201A - Important Exam | 676A - Nicholas and Permutation |
431A - Black Square | 474B - Worms |
987B - High School Become Human | 1223A - CME |
1658B - Marin and Anti-coprime Permutation | 14B - Young Photographer |
143A - Help Vasilisa the Wise 2 | 320A - Magic Numbers |
1658A - Marin and Photoshoot | 514A - Chewbaсca and Number |
382A - Ksenia and Pan Scales | 734B - Anton and Digits |
1080A - Petya and Origami | 1642D - Repetitions Decoding |
1440A - Buy the String | 1658F - Juju and Binary String |
478A - Initial Bet | 981A - Antipalindrome |
365A - Good Number | 1204B - Mislove Has Lost an Array |
1409D - Decrease the Sum of Digits | 1476E - Pattern Matching |
1107A - Digits Sequence Dividing | 1348A - Phoenix and Balance |
1343B - Balanced Array | 1186A - Vus the Cossack and a Contest |