Peykan Cũ trên phố cổ

Đề bài

Mô tả

Thành phố Cổ được biểu diễn bằng một lưới hình chữ nhật kích thước m×n ô. Mỗi ô là một trong ba loại:

  • Toà nhà, ký hiệu bằng #. Không đi qua được.
  • Ô đường, ký hiệu bằng một chữ số từ 1 đến 9. Chữ số này là thời gian (theo phút) cần để đi từ ô này sang một ô kề cạnh bất kỳ.
  • Ngã tư, ký hiệu bằng một chữ cái thường từ a đến z (mỗi ngã tư có một tên riêng, không trùng). Từ một ngã tư đi sang một ô đường kề cạnh mất đúng 1 phút.

Hai ô được gọi là kề cạnh nếu chúng chia sẻ một cạnh chung. Tất cả đường đều có chiều rộng đúng 1 ô và chỉ chạy theo phương ngang hoặc phương dọc. Ở hai đầu mỗi đường luôn có một ngã tư. Không có hai ô của hai con đường khác nhau kề cạnh nhau, và không có hai ngã tư kề cạnh nhau.

Trong một dịp lễ, chiếc xe Peykan Cũ đi theo một hành trình đặc biệt. Hành trình bắt đầu tại một ô đường, đi qua một dãy ngã tư theo thứ tự cho trước, và kết thúc tại một ô đường. Sau khi chạm ô kết thúc, Peykan dừng lại ở đó mãi mãi. Peykan luôn đi theo hành trình ngắn nhất đi qua đúng dãy ngã tư đã cho theo thứ tự. Peykan có thể đi qua cùng một ô nhiều lần.

Cho vị trí xuất phát, dãy ngã tư và vị trí kết thúc, hãy xác định vị trí của Peykan đúng k phút sau khi bắt đầu di chuyển.

Toạ độ ô: ô ở hàng i, cột j có toạ độ (i,j), với 1im1jn.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên m, nk.
  • m dòng tiếp theo mô tả bản đồ, mỗi dòng gồm n ký tự như đã mô tả ở trên.
  • Dòng cuối chứa: hai số nguyên rscs (toạ độ ô xuất phát), một chuỗi s (dãy tên các ngã tư cần đi qua theo thứ tự), rồi hai số nguyên rece (toạ độ ô kết thúc).

Chuỗi s có độ dài từ 1 đến 1000 và không chứa hai ký tự liên tiếp giống nhau. Ô xuất phát và ô kết thúc đều là ô đường. Đảm bảo tồn tại một hành trình hợp lệ đi từ ô xuất phát, qua đúng dãy ngã tư s theo thứ tự, tới ô kết thúc.

Dữ liệu ra

In ra một dòng chứa hai số nguyên rfcf — toạ độ của Peykan sau đúng k phút.

Ràng buộc

  • 3m,n100
  • 1k105
  • 1rs,rem
  • 1cs,cen
  • 1|s|1000

Ví dụ

Input Output Giải thích
3 10 12
##########
#z1a1111b#
##########
2 3 ab 2 8
2 8 Hành trình: từ (2,3) đi phải qua a=(2,4) tới b=(2,9), sau đó lùi về ô kết thúc (2,8). Tổng thời gian =1+1+1+1+1+1+1=7 phút. Vì k=12>7, Peykan đã dừng tại (2,8).
3 10 6
##########
#z1a1311b#
##########
2 3 ab 2 8
2 7 Chi phí lần lượt là 1,1,3,1 để đi từ (2,3) tới (2,7). Sau 6 phút Peykan đang ở (2,7) và chuẩn bị rời ô này (mất thêm 1 phút nữa mới tới (2,8)).
10 3 5
###
#w#
#1#
#a#
#1#
#1#
#1#
#1#
#b#
###
3 2 abababababababab 6 2
8 2 Hành trình liên tục lên xuống giữa a=(4,2)b=(9,2). Mỗi ô đường cột 2 tốn 1 phút, mỗi ngã tư cũng 1 phút. Sau 5 phút, Peykan ở (8,2).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0