Nhà giả kim

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: 2100 (p) Thời gian: 3.0s Bộ nhớ: 1G Input: ALCHEMY.INP Output: ALCHEMY.OUT

“Ta là một nhà giả kim huyền thoại. Chắc chắn ta sẽ tạo ra được thuốc thần Elixir giúp trường sinh bất lão trong truyền thuyết. Khà khà khà!!” – Canuc80k lẩm bẩm khi vừa mở tựa game Clash of Clans lên, vừa thu hoạch đầy bình dầu tím. Tuy nhiên, trên hành trình tạo ra Elixir, Canuc80k đã gặp phải vấn đề sau: trong cửa tiệm giả kim đang bày bán sẵn \(M\) loại nguyên liệu, mỗi loại có chỉ số năng lượng là \(A[i]\). Chỉ số năng lượng của tất cả nguyên liệu là đôi một khác nhau. Do ngân sách có hạn, Canuc80k chỉ được phép mua đúng \(N\) nguyên liệu bất kỳ trong số đó.

Việc pha chế khá phức tạp. Để tạo ra Elixir, Canuc80k cần \(K\) đơn vị Tinh dầu. Để tạo ra một đơn vị Tinh dầu, Canuc80k phải trộn hai nguyên liệu lại với nhau. Giả sử anh ấy trộn hai nguyên liệu có chỉ số năng lượng là \(X\)\(Y\), quá trình phản ứng sẽ:

  • Tạo ra một đơn vị Tinh dầu.
  • Đồng thời, phản ứng sinh ra một nguyên liệu mới (phần cặn) có chỉ số năng lượng là \(\text{gcd}(X, Y)\) (Ký hiệu \(\text{gcd}(X, Y)\) là ước chung lớn nhất của \(X\)\(Y\)). Nguyên liệu mới sinh ra này hoàn toàn có thể được dùng tiếp cho những lần pha chế sau đó.
  • Hai nguyên liệu gốc ban đầu (\(X\)\(Y\)) sẽ biến mất sau phản ứng.

Mục tiêu của Canuc80k là tạo ra đủ \(K\) đơn vị Tinh dầu. Đồng thời, anh ấy muốn sau khi hoàn thành công việc, tổng chỉ số năng lượng của tất cả các nguyên liệu còn lại đạt giá trị lớn nhất.

Yêu cầu: Hãy giúp Canuc80k chọn mua \(N\) nguyên liệu ban đầu và đưa ra phương án pha chế sao cho tổng năng lượng của các nguyên liệu còn sót lại là tối đa.

Input

  • Dòng đầu tiên chứa ba số nguyên \(M, N, K\) (\(1 \le K < N \le M \le 5 \cdot 10^6\)) — lần lượt là số lượng nguyên liệu có trong tiệm, số lượng nguyên liệu Canuc80k được mua, và số đơn vị Tinh dầu anh ấy cần tạo ra.
  • Dòng tiếp theo chứa \(M\) số nguyên \(A[1], A[2], \dots, A[M]\) (\(1 \le A[i] \le 5 \cdot 10^6\)). Đây là chỉ số năng lượng của các nguyên liệu trong tiệm. Dữ liệu đảm bảo tất cả các số này là phân biệt.

Output

  • In ra một số nguyên duy nhất là tổng lớn nhất có thể của các nguyên liệu còn lại sau khi đã tạo đủ \(K\) đơn vị Tinh dầu.

Example

Test 1

Input
8 6 2
14 13 12 11 2 4 8 9
Output
42
Note

Canuc80k chọn mua các nguyên liệu: \(14, 13, 12, 11, 4, 8\). Sau đó:

  1. Trộn \(12\)\(8\) \(\to\) tạo ra nguyên liệu mới \(\text{gcd}(12, 8) = 4\). Còn lại: \(14, 13, 4, 11, 4\).
  2. Trộn \(4\) (vừa tạo ra) và \(4\) (có sẵn) \(\to\) tạo ra nguyên liệu mới \(\text{gcd}(4, 4) = 4\). Còn lại: \(14, 13, 11, 4\). Tổng năng lượng là \(14 + 11 + 13 + 4 = 42\).

Scoring

  • Subtask \(1\) (\(10\%\) số điểm): \(M \le 5\).
  • Subtask \(2\) (\(15\%\) số điểm): \(M \le 20\).
  • Subtask \(3\) (\(35\%\) số điểm): \(M, A[i] \le 10^5\)\(M = N\).
  • Subtask \(4\) (\(20\%\) số điểm): \(M, A[i] \le 10^5\).
  • Subtask \(5\) (\(20\%\) số điểm): không có ràng buộc gì thêm.

Bình luận

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

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

Kỳ thi: