题号:NC214723
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
“你因为自己做过的事,不断引火上身,你还不知道自己在燃烧。”
“没在烧。”
“还在烧。”
“没在烧,这很奇怪。”
“不,还在烧。”
Violet从小在军队长大,常年的士兵生涯使她难以理解人们的感情,尤其是「爱」。
现在,漫长的战争终于结束,为了理解人们口中的「爱」,Violet成为了一名“自动手记人偶”,为人们提供代写信件的服务,从信件中体会爱的感情。
陪伴Violet工作的是一台简易的打字机,这台打字机只有28个可用键位,其中包括26个小写字母、1个切换大小写的按键和1个空格键。
打字机的内部是一个被均匀分为n行m列的矩形存储空间,而其中只有28个位置存有键位信息。当Violet按下某一键位时,打字机的“指针”将会移动到存有该键位信息的存储空间,并将其输出到信件上(若该键位用于切换大小写,打字机将切换大小写的状态而不输出任何字符)。由于指针只能上下和左右移动。从a行b列移动到c行d列所需的时间为abs(a-c)+abs(b-d)。(abs(x)指x的的绝对值)
今天,一个居民雇佣了Violet,她听说自己故乡的青梅竹马Vanis又双叒叕被表白了,焦虑的她想写信对Vanis表达自己的爱意。
由于这封信件很紧急,请你帮忙计算,需要多长时间才能写完这封信。(Violet业务能力很优秀,可以忽略按下打字机的延迟与错误,写信的时间可以等同打字机指针移动的时间)
该打字机的指针初始位于第1行第1列,初始状态为小写。在信中,单词与单词之间应该使用空格加以区分。 Violet没有学过算法,她并不会在按下某空格前切换大小写,切换大小写的按键只可能在某英文字母被按下的前一个被按下。
输入描述:
输入的第一行为两个整数
,表示打字机有n行m列的存储空间。
接下来的n行,每行m个字符,第i+1行第j列的字符表示i行j列的存储空间所表示的键位。若该字符为"@",表示该键位用于切换大小写;若该字符为"#",表示该键位为空格键;若该字符为"*",表示该位置无键位信息。保证存储空间中包含28个可用键位。
第n+2行为一个数字T,表示信中包含有T个单词(
,单词长度不大于10,且仅包含大小写字母。)
接下来的T行,每行一个字符串,第n+2+i行的字符串为信中的第i个单词。
输出描述:
输出一个数字表示写完这封信所需的时间。
示例1
输入
复制
5 6
bwkln@
rjcpeu
iq*yxf
amozt*
h#vsgd
3
EL
psy
ConGroo