[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи с acm.timus.ru » Пакет решений на 15.03.08

1033

Var Map: Array[0..34,0..34] of LongInt;
    N,I,J,R: LongInt;
    Ch: Char;

Procedure Mark(X,Y:LongInt);
Begin
  If Map[X,Y]=1 then begin
    Map[X,Y]:=2;
    If Map[X+1,Y]=1 then Mark(X+1,Y);
    If Map[X-1,Y]=1 then Mark(X-1,Y);
    If Map[X,Y+1]=1 then Mark(X,Y+1);
    If Map[X,Y-1]=1 then Mark(X,Y-1);
  End;
End;

Begin
  FillChar(Map,SizeOf(Map),0);

  Readln(N);

  Map[0,0]:=2;
  Map[1,0]:=2;
  Map[0,1]:=2;
  Map[N+1,N]:=2;
  Map[N,N+1]:=2;
  Map[N+1,N+1]:=2;

  For I:=1 to N do begin
    For J:=1 to N do begin
      Read(Ch);
      If Ch<>'#' then Map[I,J]:=1;
    End;
    Readln;
  End;

  Mark(1,1);
  Mark(N,N);

  R:=0;

  For I:=1 to N do
    For J:=1 to N do
      If Map[I,J]=2 then begin
        If Map[I+1,J]<>2 then Inc(R);
        If Map[I-1,J]<>2 then Inc(R);
        If Map[I,J+1]<>2 then Inc(R);
        If Map[I,J-1]<>2 then Inc(R);
      End;

  Write(R*9);


End.
Категория: Пакет решений на 15.03.08 | Добавил: solver (15.03.2008)
Просмотров: 762