Given a tree with \(N\) vertices. Each vertex has a value \(a_i\). For vertex \(i\) and \(j\), if some vextex \(x\) is on the path between \(i\) and \(j\), and \(x\) is neither \(i\) nor \(j\), we update \(Ans_x=max(Ans_x,GCD(a_i,a_j))\). \(GCD\) means the greatest common divisor function. \(Ans\) is an array of \(N\) zeros initial.
Find the \(Ans\) array after all updation.
Input Format
First line contains an integer \(N(1\le N\le 10^5)\).
Second line contains \(N\) integers, represent the array \(a(1\le a_i\le 10^5)\).
Each of the next \(N-1\) lines contains two integers \(u,v\), represent an edge in the tree.
Output Format
\(N\) integers in one line, represent the array \(Ans\), separated by space.
7 2 1 6 1 6 1 3 1 2 2 3 3 4 4 5 3 6 6 7
0 2 3 6 0 3 0
Vertex \(2\) is updated by \(1\) and \(5\),
Vertex \(3,6\) is updated by \(5\) and \(7\),
Vertex \(4\) is updated by \(3\) and \(5\),
Please login to use the editor
You need to be logged in to access the code editor
Loading...
Please wait while we load the editor
Login to unlock the editorial
Please login to use the editor
You need to be logged in to access the code editor
Loading...
Please wait while we load the editor