题目描述
今天是你的生日,你得到一个生日礼物全球定位系统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