level 2
卧龙居士II
楼主
var
s:array[-1..102,-1..102] of integer;
m,n,x0,y0,total:integer;
d:array[1..8,1..2] of integer=((1,2),(2,1),(2,-1),(1,-2),(-1,-2),(-2,-1),(-2,1),(-1,2));
procedure init(m,n:integer);
var
i,j:integer;
begin
fillchar(s,sizeof(s),1);
for i:=1 to m do
for j:=1 to n do
s[i,j]:=0;
end;
procedure jump(x,y:integer);
var
k,xx,yy:integer;
begin
if (x=x0) and (y=y0) then inc(total);
for k:=1 to 8 do
begin
xx:=x+d[k,1];
yy:=y+d[k,2];
if (xx=0) and (yy=0) then
begin
s[xx,yy]:=1;
jump(xx,yy);
s[xx,yy]:=0;
end;
end;
writeln(total);
end;
begin
total:=0;
readln(m,n,x0,y0);
init(m,n);
jump(x0,y0);
end.
2015年01月16日 05点01分
1
s:array[-1..102,-1..102] of integer;
m,n,x0,y0,total:integer;
d:array[1..8,1..2] of integer=((1,2),(2,1),(2,-1),(1,-2),(-1,-2),(-2,-1),(-2,1),(-1,2));
procedure init(m,n:integer);
var
i,j:integer;
begin
fillchar(s,sizeof(s),1);
for i:=1 to m do
for j:=1 to n do
s[i,j]:=0;
end;
procedure jump(x,y:integer);
var
k,xx,yy:integer;
begin
if (x=x0) and (y=y0) then inc(total);
for k:=1 to 8 do
begin
xx:=x+d[k,1];
yy:=y+d[k,2];
if (xx=0) and (yy=0) then
begin
s[xx,yy]:=1;
jump(xx,yy);
s[xx,yy]:=0;
end;
end;
writeln(total);
end;
begin
total:=0;
readln(m,n,x0,y0);
init(m,n);
jump(x0,y0);
end.