Деревом называется связный граф без циклов.
Дано дерево из $$$n$$$ вершин. На каждой вершине $$$i$$$ записано число $$$a_i$$$.
Для любой пары вершин $$$u$$$ и $$$v$$$ ($$$u \ne v$$$), определим $$$p(u, v)$$$ как произведение чисел, записанных на единственном простом пути$$$^{\text{∗}}$$$ из $$$u$$$ в $$$v$$$.
Неупорядоченная тройка вершин $$$\{u, v, w\}$$$ считается хорошей только если: $$$p(u,v)\cdot p(v,w)\cdot p(w,u)$$$ является квадратом целого числа.
Определите количество хороших троек в данном дереве.
$$$^{\text{∗}}$$$Простой путь из вершины $$$u$$$ в вершину $$$v$$$ это такая последовательность различных вершин $$$u = x_0, x_1, \ldots, x_k = v$$$, что существуют рёбра между $$$x_{i-1}$$$ и $$$x_i$$$ для всех $$$1 \le i \le k$$$.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следуют описания наборов.
Первая строка каждого набора содержит целое число $$$n$$$ ($$$3 \le n \le 2\cdot 10^5$$$) — количество вершин в дереве.
Вторая строка каждого набора содержит $$$n$$$ целых чисел $$$a_1,a_2,\dots,a_n$$$ ($$$1 \le a_i \le 10^6$$$) — числа записанные на вершинах.
Следующие $$$n-1$$$ строк содержат по два целых числа $$$u,v$$$ ($$$1 \le u,v \le n$$$), обозначающие ребро дерева. Гарантируется, что рёбра образуют дерево.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$.
Для каждого набора выведите количество хороших троек в дереве.
451 1 1 1 11 22 32 44 5101 2 3 4 5 6 7 8 9 101 32 66 75 48 33 44 69 110 2612 6 3 18 9 23 44 52 66 14 283 16 9 1 8 16 4 92 13 14 33 56 34 78 1
1048040
В первом примере все тройки хорошие:
Во втором примере $$$\{2, 5, 8\}$$$ является одной из хороших троек.