📄 ac1031.pas
字号:
program tju1031;
const
size=10;
dx:array[0..3]of shortint=(-1,0,1,0);
dy:array[0..3]of shortint=(0,1,0,-1);
var
map:array[0..size+1,0..size+1]of char;
v:array[1..size,1..size,0..3,1..size,1..size,0..3]of word;
n,t,i,j,cx,cy,cd,mx,my,md,ans:longint;
begin
read(n);
for t:=1 to n do begin
for i:=1 to size do begin
readln;
for j:=1 to size do begin
read(map[i,j]);
case map[i,j] of
'C':begin cx:=i;cy:=j;cd:=0;map[i,j]:='.';end;
'M':begin mx:=i;my:=j;md:=0;map[i,j]:='.';end;
end;
end;
end;
ans:=0;
repeat
inc(ans);
v[cx,cy,cd,mx,my,md]:=t;
if map[cx+dx[cd],cy+dy[cd]]='.' then begin inc(cx,dx[cd]);inc(cy,dy[cd]);end else cd:=(cd+1) and 3;
if map[mx+dx[md],my+dy[md]]='.' then begin inc(mx,dx[md]);inc(my,dy[md]);end else md:=(md+1) and 3;
until (cx=mx) and (cy=my) or (v[cx,cy,cd,mx,my,md]=t);
if v[cx,cy,cd,mx,my,md]=t then writeln(-1) else writeln(ans);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -