trang chủ / bài tập / candyroad

Ăn kẹo trên phố

Đề bài

Mô tả

Một con phố được chia thành n đoạn liên tiếp có độ dài bằng nhau, đánh số từ 1 đến n. Mỗi đoạn thuộc một trong ba loại:

  • Nhà (ký hiệu "H"): có người ở, cần được phát đúng 1 kg kẹo.
  • Cửa hàng (ký hiệu "S"): có thể mua kẹo, nhưng mỗi cửa hàng chỉ bán tối đa 1 kg.
  • Đất trống (ký hiệu "."): không có gì.

Một gia đình xuất phát từ nhà của họ. Để đi tới đoạn thứ 1 của con phố họ mất 1 đơn vị thời gian. Sau đó, mỗi lần di chuyển sang một đoạn kề (sang trái hoặc sang phải) mất 1 đơn vị thời gian. Họ có thể mang theo số lượng kẹo không giới hạn.

Khi đang đứng ở một đoạn là nhà, họ có thể phát 1 kg kẹo cho nhà đó (mỗi nhà chỉ nhận một lần). Khi đang đứng ở một đoạn là cửa hàng, họ có thể mua 1 kg kẹo ở đó (mỗi cửa hàng chỉ mua được một lần). Thời gian để mua và phát kẹo được bỏ qua.

Gia đình muốn phát kẹo cho tất cả các nhà và chỉ được dùng không quá t đơn vị thời gian. Vì trên phố có thể không đủ cửa hàng, họ có thể mang sẵn thêm k kg kẹo từ nhà đi.

Hãy tìm giá trị nhỏ nhất của k để có thể phát kẹo cho mọi nhà trong thời gian không quá t. Nếu không tồn tại giá trị k nào thỏa mãn, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nt.
  • Dòng thứ hai chứa xâu gồm n ký tự, ký tự thứ i là "H", "S" hoặc "." mô tả loại của đoạn thứ i.

Dữ liệu bảo đảm có ít nhất một đoạn là nhà.

Dữ liệu ra

In ra một số nguyên là giá trị nhỏ nhất của k, hoặc 1 nếu không thể.

Ràng buộc

  • 2n5·105
  • 1t109

Ví dụ

Input Output Giải thích
6 6
HSHSHS
1 Số cửa hàng bằng số nhà. Nếu không mang theo kg kẹo nào, để phát cho nhà đầu tiên (đoạn 1) họ phải quay lui lấy kẹo ở cửa hàng phía sau, nhưng không đủ thời gian. Mang theo 1 kg thì đi thẳng một mạch là đủ.
14 100
...HHHSSS...SH
0 Số cửa hàng bằng số nhà và thời gian rất dư dả: đi tới phát cho một số nhà, mua kẹo dọc đường rồi quay lại phát nốt, không cần mang thêm.
23 50
HHSS.......SSHHHHHHHHHH
8 Số cửa hàng ít hơn số nhà nên buộc phải mang thêm 8 kg từ nhà cho đủ.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0