ĐƯỜNG ĐI TRÊN BẢNG

(tabpath.*)

Trên bảng kí tự kích thước \(m \times n\), các hàng được đánh số từ 1 đến \(m\) (từ trên xuống), các cột được đánh số từ 1 đến \(n\) (từ trái sang phải). Ô nằm giao giữa hàng \(i\) và cột \(j\) là ô \((i,j)\). Mỗi ô chứa một kí tự thuộc tập \(\{'A'..'Z','*'\}\). Cụ thể, mỗi ô chứa kí tự chữ cái Latinh in hoa hoặc là kí tự \('*'\).

Xuất phát từ ô \((x,y)\) cần tìm đường đi tới một ô chứa kí tự \('*'\) nào đó trên bảng với chi phí nhỏ nhất theo quy tắc di chuyển như sau:

+ Chỉ được di chuyển sang các ô chung cạnh;

+ Nếu di chuyển sang ô mới chứa kí tự giống với kí tự trong ô hiện tại thì không mất chi phí di chuyển, còn nếu di chuyển sang ô mới chứa kí tự khác với kí tự trong ô hiện tại thì mất chi phí là l.

Yêu cầu: Cho bảng kí tự và \(Q\) ô \(\left( x_{1},y_{1} \right),\ \left( x_{2},y_{2} \right),\ldots,\left( x_{Q},y_{Q} \right)\). Với mỗi ô \(\left( x_{i},y_{i} \right)\), hãy tính chi phí của đường đi từ ô \((x_{i},y_{i})\) đến một ô chứa kí tự \('*'\) nào đó trên bảng có chi phí nhỏ nhất (\(i = 1,2,\ldots,Q)\).

Dữ liệu:

+ Dòng đầu chứa ba số nguyên \(m,\ n,\ Q\);

+ \(m\) dòng tiếp theo, mỗi dòng chứa một xâu độ dài \(n\) mô tả bảng kí tự;

+ \(Q\) dòng tiếp theo, dòng chứa hai số nguyên \(x,\ y\).

Kết quả:

+ Ghi ra \(Q\) dòng, mỗi dòng ghi một số là chi phí của đường đi từ ô \((x,y)\) đến một ô chứa kí tự \('*'\).

Ràng buộc:

  • Có 50% số lượng test thỏa mãn điều kiện: \(m,\ n \leq 100;Q \leq 3\);

  • Có 25% số lượng test khác thỏa mãn điều kiện: \(m,\ n \leq 1000;Q \leq 3\);

  • Có 25% số lượng test còn lại thỏa mãn điều kiện: \(m,\ n \leq 1000;Q \leq m \times n\);

Ví dụ:

Input Output Input Output
4 5 4
*ACCB
AACCB
AACBA
AAAAA
3 5
1 5
3 3
2 4
1
2
2
2
4 5 4
*ACCB
AAC*B
AACBA
AAAAA
3 5
1 5
3 3
2 4
1
1
1
0

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. tuythoi213 (4/6)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]