VM 08 Bài 04 - Xóa số

Xem dạng PDF

Gửi bài giải


Điểm: 0,24 (OI)
Giới hạn thời gian: 0.75s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
VNOI Marathon '08 - Round 5/DivBProblem Setter: Ngô Minh Ðức
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Xét dãy số: số thứ ~i~ được tạo bởi việc ghép ~i~ số nguyên tố đầu tiên lại.

2, 23, 235, 2357, 235711,...

Gọi ~A(n)~ là số thứ ~n~ của dãy.

Tìm cách xóa ~k~ chữ số ra khỏi số ~A(n)~ sao cho số còn lại thu được là lớn nhất có thể.

Input

~n~ và ~k~, với ~1 \le n \le 50,000~ và ~k~ không quá số chữ số của ~n~.

Output

Gồm 1 dòng duy nhất là kết quả.

Sample Input

5 4

Sample Output

71

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 2
    conghieupt2555  đã bình luận lúc 24, Tháng 5, 2026, 16:45

    ý tưởng làm:

    • vì lý do a(n) có thể rất dài nên ta phải xử lí trên string
    • dùng sàng nguyên tố để sinh số lượng số nguyên tố nhanh
    • đoạn số nt mà < 50,000 là 2 <= x <= ~ 700000
    • sài to_string để nhanh tiến độ
    • dùng stack greedy để lấy k số còn lại(sau cùng phải check k có lớn hơn 0 không , có thì tiếp tục xóa)

  • -16
    c3gr_phamvoduytan  đã bình luận lúc 21, Tháng 10, 2022, 8:09 chỉnh sửa

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -20
    c3gr_phamvoduytan  đã bình luận lúc 21, Tháng 10, 2022, 8:04 chỉnh sửa

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.