Nostalk 2012-12-22 05:33:00
点我顶贴
收藏
删除
const mdx:array[1..8]of longint=(1,-1,2,-2,1,-1,2,-2);
mdy:array[1..8]of longint=(2,-2,1,-1,-2,2,-1,1);
zdx:array[1..2]of longint=(1,0);
zdy:array[1..2]of longint=(0,1);
var m,n,k,l,ans:longint; x1,y1,x2,y2:longint;
i,j:longint;
a:array[0..10000000,0..10000000]of qword;
f:array[0..10000,0..10000]of boolean;
procedure dfs(x,y:longint);
var i,j:longint;
begin
if (x=x1)and(y=y1) then begin
inc(ans);
exit;
end;
for i:=1 to 2 do
begin
if (x+zdx[i]>=0)and(x+zdx[i]<=x1) then
if (y+zdy[i]>=0)and(y+zdy[i]<=y1) then
if (f[x+zdx[i],y+zdy[i]]=false) then
begin
f[x+zdx[i],y+zdy[i]]:=true;
dfs(x+zdx[i],y+zdy[i]);
f[x+zdx[i],y+zdy[i]]:=false;
end;
end;
end;
begin
read(x1,y1,x2,y2);
for i:=1 to 8 do
begin
f[x2+mdx[i],y2+mdy[i]]:=true;
f[x2,y2]:=true;
end;
dfs(0,0);
write(ans);
end.