Дано дерево, состоящее из \(n\) вершин. У каждой вершины \(u\) есть вес \(a_u\). Гарантируется, что в дереве есть только одна вершина с минимальным весом. У каждой вершины \(u\) (кроме вершины с минимальным \(a_u\)), есть сосед \(v\), такой, что \(a_v<a_u\).
Вам необходимо составить дерево с минимальным весом \(w\), который считается следующим образом:
- Для каждой вершины \(u\), \(deg_u \cdot a_u\) прибавляется к \(w\) (\(deg_u\) обозначает степень вершины \(u\)).
- Для каждого ребра \(\{ u,v \}\), \(\lceil log_2(dist(u,v)) \rceil \cdot min(a_u,a_v)\) прибавляется к \(w\), где \(dist(u,v)\) обозначает количество ребер на пути из \(u\) в \(v\) в данном дереве.
Выходные данные
Выведите одно целое число: минимальное возможное значение \(w\).
Примечание
В первом примере данное дерево исходно имеет минимальное значение \(w\).
Во втором примере оптимальное дерево имеет следующий вид:

Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 1 2 3 1 2 1 3
|
7
|
|
2
|
5 4 5 3 7 8 1 2 1 3 3 4 4 5
|
40
|