F. Ehab and a weird weight formulatime limit per test2.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou're given a tree consisting of n nodes. Every node u has a weight a_u. It is guaranteed that there is only one node with minimum weight in the tree. For every node u (except for the node with the minimum weight), it must have a neighbor v such that a_v<a_u. You should construct a tree to minimize the weight w calculated as follows:  For every node u, deg_u \cdot a_u is added to w (deg_u is the number of edges containing node u).  For every edge \{ u,v \}, \lceil log_2(dist(u,v)) \rceil \cdot min(a_u,a_v) is added to w, where dist(u,v) is the number of edges in the path from u to v in the given tree. InputThe first line contains the integer n (2 \le n \le 5 \cdot 10^5), the number of nodes in the tree.The second line contains n space-separated integers a_1, a_2, \ldots, a_n (1 \le a_i \le 10^9), the weights of the nodes.The next n-1 lines, each contains 2 space-separated integers u and v (1 \le u,v \le n) which means there's an edge between u and v.OutputOutput one integer, the minimum possible value for w.ExamplesInput31 2 31 21 3Output7Input54 5 3 7 81 21 33 44 5Output40NoteIn the first sample, the tree itself minimizes the value of w.In the second sample, the optimal tree is:
Input31 2 31 21 3
Output7
['data structures', 'trees', '*2800']