#P1511. Keyboarding

Keyboarding

Keyboarding

题目描述

Orange刚刚外出回到酒店,但在车上就把手机的电量全部耗尽了,于是他无聊的打开了酒店的电视,想找一些视频还缓解无聊的情绪。

但是他发现,这个电视遥控器只包含 SEL这5个按键,他只能用屏幕上的虚拟键盘来进行打字。

现在,Orange将告诉你他想要搜索的视频名称,你需要回答他打印该名称最少需要按多少次按键。

形式化的说,给定一个 rrcc 列的在电视上的"虚拟键盘",通过「上,下,左,右,SEL」共 5 个控制键,你可以移动电视屏幕上的光标来打印文本。一开始,光标在键盘的左上角,每次按方向键,光标总是跳到下一个在该方向上与当前位置不同的字符,若不存在则不移动。每次按SEL键,则将光标所在位置的字符打印出来。 现在求打印给定文本(要在结尾打印换行符)的最少按键次数。 image.png

输入格式

第一行输入 r,cr,c。 接下来给出一个 r×cr\times c 的键盘,包括大写字母,数字,横线以及星号(星号代表 Enter 换行)。 最后一行是要打印的文本串 SS

数据范围

S10000|S| \le 10000 r,c50r,c \le 50 数据保证一定有解。

输出格式

输出一个整数表示答案。

样例 #1

样例输入 #1

4 7
ABCDEFG
HIJKLMN
OPQRSTU
VWXYZ**
CONTEST

样例输出 #1

30

提示

样例解释4

  1. 键入 A 1 次
  2. 下(X)右()右(Y)左()上(Z),移动 5 次
  3. 键入 Z 1 次
  4. 下(*)左(X)上(A),移动 3 次
  5. 键入 A 1 次
  6. 从 A 移动到 Z 5 次
  7. 键入 Z 1 次
  8. 下(*),移动 1 次
  9. 键入 * 1 次