DOANNT - DOANNT
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 512 megabyte
Đăng bởi: admin

Cho một dãy số nguyên dương 𝐴 = (𝑎1, 𝑎2, … , 𝑎n) (𝑎i ≤ 106; 1 ≤ 𝑖 ≤ 𝑛). Với mỗi phần tử 𝑎i bạn
được phép tăng hoặc giảm một lượng tùy ý để được một số nguyên tố. Khi đó chi phí của bạn cần bỏ ra chính là lượng tăng hoặc giảm đó.

Yêu cầu: Hãy chọn ra một đoạn con gồm 𝑘 phần tử liên tiếp nhau của dãy 𝐴 sao cho tổng chi phí biến đổi mọi phần tử trong đoạn con đó thành các số nguyên tố là nhỏ nhất.

Dữ liệu: Vào từ file DOANNT.INP có cấu trúc như sau:

-Dòng 1: Chứa hai số nguyên dương 𝑛, 𝑘 (1 ≤ 𝑘 ≤ 𝑛 ≤ 105);

-Dòng 2: Chứa 𝑛 số nguyên dương 𝑎1, 𝑎2, . . , 𝑎n (𝑎i ≤ 106 ∀𝑖 = 1,2, … , 𝑛).

Kết quả: Ghi ra file DOANNT.OUT một số nguyên duy nhất là tổng chi phí biến đổi nhỏ nhất tìm được.
Ví dụ:

DOANNT.INP

DOANNT.OUT

4 2

9 5 8 15

1

 

Giải thích: chọn đoạn [5,8], biến đổi 8 → 7 với chi phí là 1.

Giới hạn:       - Có 20% số điểm có 𝑎𝑖 đều là số nguyên tố ∀ 𝑖 = 1,2, … , 𝑛;

- Có 40% số điểm có 𝑛, 𝑘 ≤ 5000; 𝑎𝑖 ≤ 5000 ∀ 𝑖 = 1,2, … , 𝑛;

- Có 40% số điểm còn lại không có ràng buộc bổ sung.

Ví dụ

Back to Top