GSTREE

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: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Xét đồ thị gồm \(n\) đỉnh, các đỉnh được đánh số từ \(1\) đến \(n\) và có nhãn là một số nguyên dương \(a_i\).

Gọi \(GCD(x, y)\) là ước số chung lớn nhất của hai số \(x, y\). Cạnh giữa hai đỉnh \(i, j\) có trọng số \(123456 - GCD(a_i, a_j)\).

Yêu cầu: Tìm cây khung nhỏ nhất của đồ thị.

Input

  • Dòng đầu chứa số nguyên \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\).

Output

  • Gồm một số nguyên duy nhất là tổng trọng số của cây khung nhỏ nhất tìm được.

Constraints

  • \(a_i \le 10^5\).
  • Subtask \(1\) (\(50\%\) số điểm): \(n \le 500\).
  • Subtask \(2\) (\(50\%\) số điểm): \(n \le 50000\).

Example

Test 1

Input
3 
10 20 30
Output
246892
Note
  • Cạnh \((1, 2)\) có trọng số: \(123456 - GCD(10, 20) = 123456 - 10 = 123446\).
  • Cạnh \((2, 3)\) có trọng số: \(123456 - GCD(20, 30) = 123456 - 10 = 123446\).
  • Cạnh \((1, 3)\) có trọng số: \(123456 - GCD(10, 30) = 123456 - 10 = 123446\).

Cây khung nhỏ nhất gồm 2 cạnh, ví dụ \((1, 2)\)\((2, 3)\), tổng trọng số là \(123446 + 123446 = 246892\).


Nguồn: 3D'21

Bình luận

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

Không có bình luận nào.