You are on page 1of 2

Bài 293/2007 - BOMBER MAN

Bạn đọc hẳn không xa lạ với trò chơi Bomber man nổi tiếng. Luật chơi cơ bản của game khá đơn
giản:
Nhân vật chính của chúng ta có khả năng đặt bom.Quả bom sẽ nổ sau một khoảng thời gian
nhất định và hủy diệt tất cả những gì trong phạm vi nổ của nó, trừ bức tường đá. Mục tiêu của
trò chơi là tiêu diệt hết quái vật trên bản đồ. Khi đó một cửa ra sẽ xuất hiện để Bomber man của
chúng ta chui vào sang bàn tiếp theo.

Quyết là một game thủ siêu hạng, từng có 100 năm kinh nghiệm trong trò Bomber man (thực tế
là 10 năm). Anh không chỉ qua bàn một cách dễ dàng, mà còn cố gắng tốn ít thời gian nhất có
thể để dành được nhiều điểm thưởng.
Trên một bản đồ cỡ m x n (ô), sau khi tiêu diệt hết quái vật, Bomber man của Quyết đứng ở ô
(xS, yS) (dòng thứ xS và cột thứ yS), cửa ra xuất hiện ở ô (xf, yf). Bạn hãy giúp Quyết tìm đường
đi đến đích nhanh nhất có thể để Quyết có thể phá kỷ lục được game thủ huyền thoại XYZ lập ra
cách đây 5 năm. Biết Bomber man của Quyết có thể di chuyển với vận tốc 1 ô / 1 đơn vị thời
gian (trong 1 đơn vị thời gian Bomber man có thể di chuyển được sang 1 ô kề cạnh với ô nó
đang đứng nếu ô đó trống). Khi gặp vật cản trên đường đi (tường gạch), Quyết có thể đặt bom
để phá hủy nó. Một quả bom sau khi đặt sẽ phát nổ trong vòng 3 đơn vị thời gian, và có diện
tích nổ 1 ô xung quanh nó (vào thời điểm bom nổ, vị trí quả bom và 4 ô kề cạnh với nó được coi
là trong trạng thái nổ, và nếu bomber man của chúng ta đứng ở đó, anh ta sẽ chết, và điều này
thì không hay chút nào). Thời gian đặt bom được coi như là bằng 0. Bạn hãy tính thời gian nhỏ
nhất để Quyết có thể đến được cửa ra an toàn. Dữ liệu vào được cho từ file BOMBER.INP:
- Dòng thứ nhất ghi hai số m, n
- Tiếp theo là m dòng, mỗi dòng là một xâu độ dài n bao gồm các ký tự miêu tả tình trạng ban
đầu của các ô: dấu ‘.’ nếu ô đó là trống, ‘#’ nếu ô đó là tường gạch, và ‘*’ nếu ô đó là tường đá.
Vị trí của bomber man và cửa ra ký hiệu lần lượt là ‘S’ và ‘F’, và được coi là ô trống.
Dữ liệu ra được cho ra file BOMBER.OUT một số duy nhất ghi tổng thời gian nhỏ nhất (tính
theo đơn vị thời gian) Quyết cần để đưa Bomber man tới đích. Giới hạn: 2 ≤ m, n ≤ 10
Dữ liệu đầu vào luôn đảm bảo có đường tới đích.
Ví dụ:

You might also like