分析:模拟两个人同时走就可以了,只是有点麻烦。
代码
const
maxn=1100;
var
dx:array[0..3] of longint=(0,1,0,-1);
dy:array[0..3] of longint=(1,0,-1,0);
a,b:array[-1..maxn,-1..maxn] of boolean;
i,j,x1,y1,x2,y2,d1,d2,tx,ty,q,t,n:longint;
f1,f2:boolean;
begin
assign(input,'fight.in');
assign(output,'fight.out');
reset(input);
rewrite(output);
readln(t);
for q:=1 to t do
begin
readln(n);
for i:=-1 to n do
begin
a[-1,i]:=false;
b[-1,i]:=false;
a[i,-1]:=false;
b[i,-1]:=false;
end;
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
a[i,j]:=true;
b[i,j]:=true;
end;
f1:=true; f2:=true;
readln(x1,y1,d1);
readln(x2,y2,d2);
a[x1,y1]:=false;
b[x2,y2]:=false;
while (x1<>x2) or (y1<>y2) do
begin
if f1 then
begin
tx:=x1+dx[d1]; ty:=y1+dy[d1];
if a[tx,ty]=false
then begin
inc(d1);
if d1>3 then d1:=0;
tx:=x1+dx[d1]; ty:=y1+dy[d1];
if a[tx,ty]=false then f1:=false;
end;
if f1 then
begin
x1:=tx; y1:=ty; a[x1,y1]:=false;
end;
end;
if f2 then
begin
tx:=x2+dx[d2]; ty:=y2+dy[d2];
if b[tx,ty]=false
then begin
dec(d2);
if d2<0 then d2:=3;
tx:=x2+dx[d2]; ty:=y2+dy[d2];
if b[tx,ty]=false then f2:=false;
end;
if f2
then begin
x2:=tx; y2:=ty; b[x2,y2]:=false;
end;
end;
if (f1=false) and (f2=false) then break;
end;
if (x1=x2) and (y1=y2)
then writeln(x1,' ',y1)
else writeln(-1);
end;
close(input);close(output);
end.