시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 5 | 5 | 5 | 100.000% |
Consider the following maze made of equilateral triangles:
Each vertex is described by two coordinates x and y as in the picture. Some of the edges have a white or a black circle on them. There are two major rules that control movement within the maze:
Write a program to find the length of the shortest path from the entrance point to the exit in the maze. The length of the path is defined as the number of edges (or circles) passed. You may assume that such path always exists.
The first line contains two integers W and H which are the width and the height of the maze respectively (1 ≤ W, H ≤ 500). The second line consists of four integer values: X1 Y1 X2 Y2 (0 ≤ X1, X2 ≤ W; 0 ≤ Y1, Y2 ≤ H). (X1, Y1) are the coordinates of the entry point in the maze and (X2, Y2) are the exit coordinates.
The next 2H+1 lines provide the description of the edges: odd lines (3rd, 5th, etc) describe horizontal edges, and even lines (4th, 6th, etc) describe non-horizontal ones. Each line consists of a string of characters n
, w
and b
, where n
means, that there is no circle on the edge, and w
or b
means that there is white or black circle on the edge respectively. There are no spaces between these characters. Naturally, odd lines consist of exactly W characters, and even lines consist of exactly 2W+1 characters.
Your program should output a single integer (the length of the shortest path from entrance point to the exit in the maze) in the first (and the only) line.
2 1 0 0 2 1 bb nwwnw bn
6
A simple maze. One possible shortest path is this:
(0, 0) → (1, 0) → (0, 1) → (1, 1) → (1, 0) → (2, 0) → (2, 1)
Here is the illustration of the maze and the shortest path:
5 4 0 2 5 2 nnbnn nnnwwbwnnnn nbbbn nnwbwwbwwnn bwwww nnbwbbwwbnn nwwwn nnnnbwbbnnn nnwnn
22
This is the description of the maze given in the picture on the above. The shortest path is this:
(0, 2) → (1, 2) → (1, 1) → (2, 1) → (2, 0) → (3, 0) → (3, 1) → (3, 2) → (4, 1) → (3, 1) → (3, 0) → (2, 0) → (2, 1) → (1, 1) → (1, 2) → (1, 3) → (2, 3) → (2, 4) → (3, 4) → (3, 3) → (4, 3) → (4, 2) → (5, 2)
(Length: 22)