XOR#10162

XOR

1 секунда
256,642 мегабайта
Дуже складна

Дано дерево, у кожної вершини є значення a_i. Відстань між двома вершинами визначається як XOR усіх значень на шляху між ними. Ваше завдання — знайти суму відстаней для всіх пар вершин таких, що 1 \leq u \leq v \leq n.

\InputFileПерший рядок містить ціле число (1 \leq n \leq 10^5) — кількість вершин у дереві.

Другий рядок містить цілих чисел a_1, a_2, \ldots, a_n (0 \leq a_i \leq 10^6) — значення у вершинах.

Кожен з наступних n-1 рядків містить по два цілих числа u_i і v_i (1 \leq u_i, v_i \leq n), які задають ребро між вершинами u_i і v_i.

\OutputFileВиведіть одне число — суму відстаней між усіма парами вершин , де 1 \leq u \leq v \leq n.

\NoteНаприклад, для наведеного дерева:

Сума цих відстаней дорівнює 1 + 3 + 0 + 2 + 1 + 3 = 10.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading