Cây GCD

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

ami có một cây \(n\) đỉnh, các đỉnh được đánh số từ \(1\) đến \(n\), và ở đỉnh \(i\) chứa một số \(a_i\). Gọi \(gcd(u,v)\) là ước chung lớn nhất của tất cả các đỉnh trong đường đi từ \(u\) đến \(v\). Đường đi ở đây chỉ đi qua các đỉnh và cạnh đúng 1 lần (đường đi ngắn nhất). Gọi \(dist(u, v)\) là số đỉnh trên đường đi từ \(u\) đến \(v\). Hãy tìm 2 đỉnh \(u\)\(v\)\(gcd(u,v) > 1\)\(dist(u,v)\) đạt max.

Input

  • Dòng đầu tiên chứa một số nguyên dương \(n\) là số đỉnh của cây.
  • Dòng tiếp theo chứa \(n\) số nguyên dương \(a_i\) là số ở đỉnh \(i\).
  • \(n-1\) dòng tiếp theo, mỗi dòng chứa 2 số \(u\)\(v\) là một cạnh của cây.

Output

  • Một dòng là đáp án.

Example

Test 1

Input
5
1 2 2 4 5
1 2
2 3
3 4
4 5
Output
3
Note

Đi từ đỉnh 2 đến 4.

Giới hạn

  • \(2 \leq n \leq 2 \cdot 10^5\)
  • \(1 \leq a_i \leq 2 \cdot 10^5\)

Bình luận (1)

Mới nhất
Tải bình luận...