哪里错了
  • 板块P1605 迷宫
  • 楼主stone2000
  • 当前回复6
  • 已保存回复6
  • 发布时间2016/2/14 16:59
  • 上次更新2024/8/31 08:24:52
查看原帖
哪里错了
9513
stone2000楼主2016/2/14 16:59
program exam;
const
  w:array[1..4] of longint=(1,0,-1,0);
  u:array[1..4] of longint=(0,1,0,-1);
var
  b:array[1..10000,1..10000] of boolean;
  m,n,sx,sy,fx,fy,s,t,i,p,q:longint;
procedure search(x,y:longint);
var
  i1:longint;
begin
  if (x>=fx) and (y>=fy) then
  begin
    inc(s);
    exit;
  end;
  for i1:=1 to 4 do
    if (0<x+u[i1]) and (x+u[i1]<=n) and (0<y+w[i1]) and (y+w[i1]<=m) and (b[x+u[i1],y+w[i1]]=false) then
    begin
      x:=x+u[i1];
      y:=y+w[i1];
      b[x,y]:=true;
      search(x,y);
      b[x,y]:=false;
      x:=x-u[i1];
      y:=y-w[i1];
    end;
end;
begin
  readln(n,m,t);
  readln(sx,sy,fx,fy);
  fillchar(b,sizeof(b),false);
  for i:=1 to t do
  begin
    readln(p,q);
    b[p,q]:=true;
  end;
  s:=0;
  b[sx,sy]:=true;
  search(sx,sy);
  write(s);
end.

2016/2/14 16:59
加载中...