Mùa lũ (OLP 11 - 2019)

Xem PDF



Thời gian:
Python 3 10.0s

Tác giả:
Dạng bài
Điểm: 300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Là người yêu thích cuộc sống gắn bó với thiên nhiên, Tâm đã đi thám hiểm nhiều nơi trên thế giới,
và lập một trang trại nhỏ ở vùng rừng nguyên sinh \(Narmia\) để quan sát và chăm sóc các loài động
vật hoang dã có nguy cơ bị tuyệt chủng.

Vùng trang trại của Tâm, đến mùa mưa, nước lũ thường dâng cao, gây ngập lụt nhiều nơi. Mùa mưa
lũ năm nay sắp đến, Tâm cần đến cửa hàng mua thêm lương thực và trang thiết bị cho trang trại của
mình. Do đang bận sửa chữa và dọn dẹp trang trại, Tâm cố gắng trì hoãn việc đi tới cửa hàng lâu
nhất có thể để làm xong công việc tại trang trại.

Chúng ta biết bản đồ của vùng đất mà Tâm đang ở có dạng lưới ô vuông với kích thước \(N x M\)
(gồm \(N\) dòng và \(M\) cột). Trang trại của Tâm và cửa hàng tương ứng với hai ô khác nhau trên bản đồ.
Ở một số ô còn có các khe suối. Tại thời điểm \(t = 0\), mọi vị trí đều khô ráo. Thời điểm \(t = 1\), nước lũ
đồng loạt dâng lên ở các khe suối, các ô có khe suối đều trở nên ngập nước.

Sau đó, cứ mỗi một đơn vị thời gian trôi qua, một ô chưa ngập kề cạnh với ít nhất một ô đã ngập thì
cũng sẽ bị ngập theo. Tâm có \(K\) chiếc bè, Tâm có thể dùng những chiếc bè này như sau:

  • Tâm có thể đặt mỗi lần một bè tại một ô bất kì. Khi đã đặt bè, Tâm có thể đi qua ô đó bất kể
    nó đang ngập hay không. Bè đã đặt không thể thu lại. Thời gian đặt bè là không đáng kể.
  • Bè không có tác dụng ngăn cản dòng nước, nước vẫn gây ngập theo quy luật ở trên bất kể có
    bè hay không.

Thời gian di chuyển của Tâm là không đáng kể so với thời gian giữa các lần nước dâng; nói cách
khác, từ lúc Tâm bắt đầu đến lúc Tâm kết thúc hành trình, mực nước sẽ không thay đổi. Từ một ô,
Tâm có thể di chuyển sang ô kề cạnh bất kì nếu ô đó chưa bị ngập, hoặc nếu Tâm di chuyển sang
một ô có bè.

Yêu cầu:

  • Bạn cần giúp Tâm tính thời điểm khởi hành muộn nhất từ trang trại mà vẫn tới được cửa
    hàng. Giả sử trang trại của Tâm và cửa hàng được xây dựng trên những ô đất đủ cao và không bao
    giờ bị ngập.

Input

  • Dòng đầu chứa ba số nguyên \(N, M, K\) (\(1 ≤ N, M ≤ 1000, 1 ≤ K ≤ 10000\)), lần lượt là kích
    thước (số dòng và số cột) của vùng đất mà Tâm ở và số bè Tâm có.
  • \(N\) dòng tiếp theo, mỗi dòng chứa một chuỗi \(M\) kí tự, kí tự thứ \(j\) của dòng thứ \(i+1\). nếu ô
    (\(i, j\)) trống, là H nếu là trang trại của Tâm, là G nếu là cửa hàng, là S nếu là khe suối.
  • Đảm bảo mỗi bản đồ chứa đúng một kí tự H, đúng một kí tự G và ít nhất một kí tự S.

Output

  • Ghi ra duy nhất một số nguyên là thời điểm khởi hành muộn
    nhất của Tâm. Nếu Tâm có thể khởi hành muộn tùy ý, in ra –1.

Scoring:

  • 40% số điểm của bài tương ứng với các test có \(N, M ≤ 50\)

Example

Test 1

Input

5 5 2
H....
.....
.....
S....
....G

Output

5

Note
  • Trang trại của Tâm ở ô (1, 1) và cửa hàng ở ô (5, 5). Tâm có thể đợi nước lũ dâng 5 lần
    rồi bắt đầu di chuyển, đặt bè ở các ô (1, 2) và (4, 5) trong quá trình di chuyển.

Nguồn: Olympic 30/4 năm 2019.


Bình luận