题目描述
今天是你的生日,你得到一个生日礼物全球定位系统GPS(Global Positioning System),可以用来记录你的路线的一些重要的点,便于回来时方便,这些点需要输入名字来标识,但这个GPS没有键盘,只有4个方向键,中间是一个“accept”键,
当你准备输入一个名字时,光标一开始在字母“A”处,你可以通过方向键移动光标到你想要的位置,然后按下“accept”键,一旦你全部输完就必须把光标移到“enter”处再按下“accept”完成整个输入。
给你一个名字,计算出光标最少需要移动多少次。
输入
输入包含一个长度不超过40的字符串,你可以假设所有字符都在键盘上能够找到(字母都是大写)。
输出
输出一个整数表示光标的移动次数。
var a:array['A'..'Z',1..2] of integer; i,j,k,m,s,n,x,y:longint; st:ansistring; begin assign(input,'j3.in'); reset(input); assign(output,'j3.out');rewrite(output); readln(st); j:=1; k:=1; for i:=1 to 26 do begin a[chr(ord('A')+i-1),1]:=j; a[chr(ord('A')+i-1),2]:=k; inc(k); if k>6 then begin k:=1; inc(j); end; end; x:=1; y:=1; for i:=1 to length(st) do begin if st[i] in ['A'..'Z'] then begin s:=s+abs(x-a[st[i],1])+abs(y-a[st[i],2]); x:=a[st[i],1]; y:=a[st[i],2]; end else if st[i]=' ' then begin s:=s+abs(x-5)+abs(y-3); x:=5; y:=3; end else if st[i]='-' then begin s:=s+abs(x-5)+abs(y-4); x:=5; y:=4; end else if st[i]='.' then begin s:=s+abs(x-5)+abs(y-5); x:=5; y:=5; end end; s:=s+abs(x-5)+abs(y-6); writeln(s); end.
]]>
Comments NOTHING