Bài 4: Cửa hàng (TS10 Thanh Hóa thi thử - 2026)

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: 1400 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Có một cửa hàng cho thuê \(N\) thiết bị âm thanh. Để thuê hết \(N\) thiết bị, khách hàng có thể chia chúng thành nhiều nhóm, trong mỗi nhóm được tính tiền theo một trong hai chính sách sau:

  • Nếu trong nhóm đó thuê từ \(3\) thiết bị trở lên thì sẽ được miễn phí "1 thiết bị" có giá nhỏ nhất.
  • Nếu trong nhóm đó thuê ít hơn \(3\) thiết bị thì tất cả thiết bị của nhóm đó đều được giảm giá \(q\%\).

Hãy tìm cách chia nhóm sao cho tổng số tiền phải trả là ít nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(N\)\(q\) (\(N \le 10^6, q < 100\)) lần lượt là số lượng thiết bị và mức giảm giá.
  • Dòng tiếp theo chứa \(N\) số nguyên dương \(A_1, A_2, A_3, \dots, A_n\) (\(A_i \le 10^6\), \(A_i\) chia hết cho \(100\)) lần lượt là số tiền cần phải bỏ ra để thuê của các thiết bị.

Output

  • In ra một số nguyên duy nhất là tổng số tiền ít nhất để thuê hết \(N\) thiết bị.

Example

Test 1

Input
6 10
1000 100 900 100 800 100
Output
2100
Note

Ở test ví dụ ta chia làm 2 nhóm:

  • Nhóm 1 gồm 3 thiết bị có giá \(100, 100, 100\). Nhóm này được miễn phí 1 thiết bị giá \(100\), số tiền cần trả là \(100 + 100 = 200\).
  • Nhóm 2 gồm 3 thiết bị có giá \(1000, 900, 800\). Nhóm này được miễn phí 1 thiết bị giá \(800\), số tiền cần trả là \(1000 + 900 = 1900\).

Tổng số tiền để thuê 6 thiết bị sẽ là \(200 + 1900 = 2100\).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(N \le 3, 100 \le A_i \le 1000\).
  • Subtask \(2\) (\(80\%\) 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.