Problem ID:
maze
Points:
1.5 (partial)
Time limit:
1.0s
Memory limit:
256M
Input:
stdin
Output:
stdout
Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Perl, Python
Mê cung hình chữ nhật kích thước ~M \times N~ gồm các ô vuông đơn vị. Trên mỗi ô ký tự:
O
: Nếu ô đó an toàn.
X
: Nếu ô đó có cạm bẫy.
E
: Nếu là ô có một nhà thám hiểm đang đứng.
Duy nhất chỉ có một ô ghi chữ E
. Nhà thám hiểm có thể từ một ô đi sang một trong số các ô chung cạnh với ô đang đứng. Một cách đi thóat khỏi mê cung là một hành trình đi qua các ô an toàn ra một ô biên. Hãy chỉ giúp cho nhà thám hiểm một hành trình thoát ra khỏi mê cung.
Dữ liệu vào:
- Dòng đầu tiên chứa ~2~ số nguyên dương ~M~ và ~N~ ~(3 \leq M, N \leq 250)~, cách nhau ít nhất một dấu cách.
- ~M~ dòng tiếp theo, mỗi dòng chứa ~N~ kí tự, chỉ gồm các kí tự
O
,X
,E
.
Dữ liệu ra:
Nếu tìm được hành trình:
- Dòng đầu tiên chứa số nguyên dương ~K~, là số lượng ô mà nhà thám hiểm đã đi qua trong hành trình thoát khỏi mê cung (kể cả ô nhà thám hiểm đang đứng).
- ~K~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~i, j~ (~i, j~ cách nhau ít nhất một dấu cách), với ~i~, ~j~ là chỉ số dòng và cột của các ô mà nhà thám hiểm đã đi qua trong hành trình thoát khỏi mê cung.
Nếu không tìm được hành trình thì ghi ~-1~.
Sample Input
4 5
XOXOO
OXEOX
XOOOO
XOXOX
Sample Output
3
1 4
2 4
2 3
Comments