比赛 20121016 评测结果 WWWWWWWWWW
题目名称 家族 最终得分 0
用户昵称 4154 运行时间 0.014 s
代码语言 Pascal 内存使用 0.17 MiB
提交时间 2012-10-16 20:53:04
显示代码纯文本
var a:array[0..101,0..101]of char;


    n,ans:integer;



procedure init;
var i,j:integer;
begin
  assign(input,'family.in');
  reset(input);
  readln(n);
  for i:=1 to n do
  begin
    for j:=1 to n do
      read(a[i,j]);
    readln;
  end;
  for i:=0 to n+1 do
  begin
    a[i,0]:=' ';
    a[i,n+1]:=' ';
    a[0,i]:=' ';
    a[n+1,i]:=' ';
  end;
  close(input);
end;

const go:array[1..4,1..2]of integer=((1,-1),
                                     (1,1),
                                     (-1,1),
                                     (-1,-1));

procedure dfs(x,y:integer);
var i,j,nx,ny:integer;
begin
  a[x,y]:=' ';
  for i:=1 to 4 do
  begin
    nx:=x+go[i,1];
    ny:=y+go[i,2];
    if (a[nx,ny]<>'*')and(a[nx,ny]<>' ') then dfs(nx,ny);
  end;



end;

procedure main;
var i,j,x,y:integer;
    flag:boolean;
begin
  repeat
    flag:=false;
    for i:=1 to n do
    begin
      for j:=1 to n do
        if (a[i,j]<>'*')and(a[i,j]<>' ') then
        begin
          flag:=true;
          x:=i;y:=j;
          break;
        end;
      if flag=true then break;
    end;
    if not flag then break;
    inc(ans);
    dfs(x,y);
  until not flag;
end;




begin
  init;
  main;
  assign(output,'family.out');
  rewrite(output);
  writeln(ans);
  close(output);


end.