H
hai6f2009


Bài 3. Sa mạc (6 điểm)
Một bãi sa mạc có dạng hình chữ nhật MxN. Mỗi ô vuông đơn vị trên sa mạc có một độ cao nào đó. Một người muốn đi từ bờ đầu này sang bờ cuối cùng bên kia (đi từ dòng 1 đến dòng thứ M). Người đó chỉ có thể đi từ ô đang đứng tới một ô mới theo hướng thẳng đứng chéo trái hoặc chéo phải. Giả thiết rằng người đó không được vượt ra hai mép trái và phải của sa mạc.
Hãy tìm đường đi sao cho người đó phải vượt qua quãng đường ngắn nhất. Mỗi lần đi từ một ô sang ô mới tiếp theo người đó phải đi hết quãng đường bằng độ chênh cao giữa hai ô đó.
Input: file SAMAC.INP gồm:
- Dòng đầu chứa 2 số M và N
- Dòng 2: chứa 2 số x, y là vị trí xuất phát (x: dòng, y: cột)
- M dòng tiếp theo, mỗi dòng chứa N số là độ cao của mỗi ô vuông đơn vị trên sa mạc.
Output: file SAMAC.OUT gồm:
- Dòng đầu chứa quãng đường nhỏ nhất đã đi qua.
- Dòng 2 chứa từng cặp (x,y) cho biết chỉ số dòng và cột của các ô vuông đơn vị đã đi qua.
Ví dụ:
SAMAC.INP
5 5
1 3
3 3 8 1 5
8 7 3 14 1
6 7 18 1 1
20 20 17 23 24
31 20 27 10 6
SAMAC.OUT
12
(1,3)(2,4) (3,3) (4,2) (5,2)
Một bãi sa mạc có dạng hình chữ nhật MxN. Mỗi ô vuông đơn vị trên sa mạc có một độ cao nào đó. Một người muốn đi từ bờ đầu này sang bờ cuối cùng bên kia (đi từ dòng 1 đến dòng thứ M). Người đó chỉ có thể đi từ ô đang đứng tới một ô mới theo hướng thẳng đứng chéo trái hoặc chéo phải. Giả thiết rằng người đó không được vượt ra hai mép trái và phải của sa mạc.
Hãy tìm đường đi sao cho người đó phải vượt qua quãng đường ngắn nhất. Mỗi lần đi từ một ô sang ô mới tiếp theo người đó phải đi hết quãng đường bằng độ chênh cao giữa hai ô đó.
Input: file SAMAC.INP gồm:
- Dòng đầu chứa 2 số M và N
- Dòng 2: chứa 2 số x, y là vị trí xuất phát (x: dòng, y: cột)
- M dòng tiếp theo, mỗi dòng chứa N số là độ cao của mỗi ô vuông đơn vị trên sa mạc.
Output: file SAMAC.OUT gồm:
- Dòng đầu chứa quãng đường nhỏ nhất đã đi qua.
- Dòng 2 chứa từng cặp (x,y) cho biết chỉ số dòng và cột của các ô vuông đơn vị đã đi qua.
Ví dụ:
SAMAC.INP
5 5
1 3
3 3 8 1 5
8 7 3 14 1
6 7 18 1 1
20 20 17 23 24
31 20 27 10 6
SAMAC.OUT
12
(1,3)(2,4) (3,3) (4,2) (5,2)