⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac1033.pas

📁 uralcode
💻 PAS
字号:
program ural1033;
const
  maxn=33;
  dx:array[1..4]of shortint=(1,-1,0,0);
  dy:array[1..4]of shortint=(0,0,1,-1);
var
  map:array[0..maxn+1,0..maxn+1]of char;
  v:array[1..maxn,1..maxn]of boolean;
  qx,qy:array[1..maxn*maxn]of byte;
  n,i,j,x,y:byte;
  front,rear:integer;
  s:integer;
begin
  readln(n);
  for i:=1 to n do begin
    map[0,i]:='#';
    map[i,0]:='#';
    map[n+1,i]:='#';
    map[i,n+1]:='#';
  end;
  for i:=1 to n do begin
    for j:=1 to n do
      read(map[i,j]);
    readln;
  end;

  fillchar(v,sizeof(v),0);
  front:=0;rear:=2;
  qx[1]:=1;qy[1]:=1;v[1,1]:=true;
  qx[2]:=n;qy[2]:=n;v[n,n]:=true;
  s:=0;
  repeat
    inc(front);
    for i:=1 to 4 do begin
      x:=qx[front]+dx[i];y:=qy[front]+dy[i];
      if map[x,y]='#' then
        inc(s)
      else if not v[x,y] then begin
        inc(rear);qx[rear]:=x;qy[rear]:=y;v[x,y]:=true;
      end;
    end;
  until front=rear;
  writeln((s-4)*9);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -