題解:
直接暴力寬搜.....
參考程序:
var x,y,n,t1,t2,l,r,i:longint;
a:array[-1000..1000,-1000..1000]of longint;
data:array[1..1000000,1..3]of longint;
f1:array[1..4]of longint=(-1,0,1,0);
f2:array[1..4]of longint=(0,1,0,-1);
begin
readln(x,y,n);
for i:=1 to n do
begin
readln(t1,t2);
a[t1,t2]:=1;
end;
l:=0;
r:=1;
while l<r do
begin
inc(l);
for i:=1 to 4 do
if a[data[l,1]+f1[i],data[l,2]+f2[i]]=0 then
begin
a[data[l,1]+f1[i],data[l,2]+f2[i]]:=1;
inc(r);
data[r,1]:=data[l,1]+f1[i];
data[r,2]:=data[l,2]+f2[i];
data[r,3]:=data[l,3]+1;
if (data[r,1]=x)and(data[r,2]=y) then
begin
writeln(data[r,3]);
exit;
end;
end;
end;
end.