Notice
Chào mừng bạn đến với OREOJ !

[Week 1] Bài 30

Xem dạng PDF

Chi tiết
Dạng bài
Ngôn ngữ cho phép
Assembly, AWK, C, C++, C++20, C++23, Go, Java, Kotlin, Pascal, Perl, PyPy, Python, Rust, Scratch, SED, Text
Điểm: 2,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: PLAN.INP
Output: PLAN.OUT
Bài 30: Quy hoạch thành phố

Yêu cầu: Thành phố A đang quy hoạch các ngôi nhà liền kề trên cùng một trục đường để có màu sắc giống nhau, với chi phí cho phép là ~k~. Mỗi ngôi nhà được sơn một màu biểu diễn bằng một kí tự từ 'a' đến 'z'. Chi phí chuyển đổi từ màu ~x~ sang màu ~y~ là khoảng cách giữa 2 kí tự trong bảng mã ASCII (ví dụ: |'a' - 'b'| = |97 - 98| = 1). Hãy tìm số lượng nhiều nhất các ngôi nhà liền kề có cùng màu sơn sau khi thực hiện dự án, với tổng chi phí không vượt quá ~k~.

Giới hạn:

  • ~1 \le k \le 10^5~
  • ~1 \le |S| \le 5 \times 10^5~
  • Thời gian: 1.0s | Bộ nhớ: 256 MB

Dữ liệu vào (PLAN.INP):

  • Dòng đầu tiên ghi số nguyên dương ~k~.
  • Dòng thứ hai ghi xâu ~S~ biểu diễn màu sơn hiện tại.

Kết quả (PLAN.OUT):

  • Ghi ra một số nguyên duy nhất là chiều dài đoạn nhà dài nhất.

Ví dụ:

Input:

2
babac

Output:

4

(Giải thích: Chuyển 'b' -> 'a' (chi phí 1). Xâu thành 'aaaac' (tổng chi phí là 2). Có 4 nhà liền kề màu 'a').


Bình luận

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


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