trang chủ / đề bài / thhv23_tprime

Đoạn nguyên tố

Đề bài

Mô tả

Cho một dãy số nguyên dương A=(a1,a2,…,an) (ai≤106; 1≤i≤n). Với mỗi phần tử ai 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 đó (một phần tử đã là số nguyên tố thì có chi phí 0; lưu ý 1 không phải là số nguyên tố, và số nguyên tố nhận được có thể lớn hơn 106).

Yêu cầu: Hãy chọn ra một đoạn con gồm k phần tử liên tiếp nhau của dãy A 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

  • Dòng 1: Chứa hai số nguyên dương n,k (1≤k≤n≤105).
  • Dòng 2: Chứa n số nguyên dương a1,a2,…,an (ai≤106, ∀i=1,2,…,n).

Dữ liệu ra

In ra một số nguyên duy nhất là tổng chi phí biến đổi nhỏ nhất tìm được.

Ràng buộc

  • 1≤k≤n≤105.
  • 1≤ai≤106 với mọi i=1,2,…,n.

Subtasks

Điểm được tính theo từng test.

  • Subtask 1 (20% số test): ai đều là số nguyên tố, ∀i=1,2,…,n.
  • Subtask 2 (40% số test): n,k≤5000; ai≤5000, ∀i=1,2,…,n.
  • Subtask 3 (40% số test): không có ràng buộc bổ sung.

Ví dụ

Input Output Giải thích
4 2
9 5 8 15
1 Chọn đoạn [5,8], biến đổi 8→7 với chi phí là 1.
4 2
1000000 1 999999 4
4 Ví dụ bổ sung (không có trong đề gốc). Chi phí từng phần tử là 3 (106→1000003), 1 (1→2), 4 (999999→1000003), 1 (4→3 hoặc 4→5). Đoạn [1000000,1] có tổng chi phí nhỏ nhất là 4.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0