Các bé trường mầm non SuperKids đang chơi trò chơi ghép chữ trên một sân hình chữ nhật kích
thước \(m × n\) được chia thành lưới ô vuông đơn vị. Các hàng ô đánh số từ \(1\) tới \(m\) từ trên xuống
và các cột ô được đánh số từ \(1\) tới n từ trái qua phải. Ô nằm trên giao của hàng \(i\) và cột \(j\) được
gọi là ô \((i,j)\) và trên đó chứa đúng một chữ cái hoa \(a_{ij}\).
Mỗi bé khi chơi được cho trước xâu ký tự \(S\) độ dài \(k\) chỉ gồm các chữ cái hoa. Bé được chọn một
ô để xuất phát và thực hiện trò chơi qua nhiều lượt. Tại mỗi lượt, bé bắt buộc phải di chuyển
sang một trong bốn ô kề cạnh với ô đang đứng, sau đó bé được viết ra đúng một chữ cái bằng
với chữ cái tại ô vừa tới nếu muốn. Mục đích của bé là viết ra được xâu ký tự \(S\) đã cho. Chú ý
rằng các chữ cái phải được viết ra lần lượt theo đúng thứ tự trong xâu \(S\) và khi tới một ô chỉ
được viết ra đúng một chữ cái.
Yêu cầu: Hãy giúp bé thực hiện được mục đích của mình trong trò chơi với số lần di chuyển ít
nhất. Cho biết số lần di chuyển theo phương án tìm được
Input
Vào từ file văn bản SPELL.INP
- Dòng 1 chứa ba số nguyên dương \(m, n, k (2 \le m, n, k \le 300)\) cách nhau bởi dấu cách
- Dòng 2 chứa xâu ký tự \(S\) gồm đúng \(k\) chữ cái hoa viết liền.
- \(m\) dòng tiếp theo, dòng thứ \(i\) chứa \(n\) chữ cái hoa liền nhau, chữ cái thứ \(j\) là \(a_{ij}\)
Output
- Ghi ra file văn bản SPELL.OUT một số nguyên duy nhất là số lần di chuyển ít nhất mà
bé cần thực hiện để đạt được mục đích của trò chơi.
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(m, n, k \le 4\)
- Subtask \(2\) (\(30\%\) số điểm): \(m, n, k \le 100\)
- Subtask \(3\) (\(40\%\) số điểm): Không có ràng buộc bổ sung ngoài các ràng buộc đã nêu trong đề bài.
Example
Test 1
Input
2 4 6
DHDBBB
DHAB
ABBD
Output
7
Bình luận
\(\color{#ff0000}{\text{Máy chấm của BTC chậm hơn gấp 2 lần trên server này nên các bạn thấy điểm cao lên cũng không bất ngờ nhé}}\)
Bài này BTC để time chấm test cuối rất lớn >3s