Задача 4 Урок 20

Задача 4 Урок 20

Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:

всегда есть общий корень и это цифра
по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака - (тире).
по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).

Размер схемы не более чем 100 на 100 символов. Задача: вывести длина самой длинной цепочки.

type sarr=array [1..10] of string;
type iarr=array [1..15] of integer;
var f:text; name:string; i,j,k,t,h,t1,max:integer;
  a1:iarr; s:sarr;

function zapolni(z:string; x:integer; var a:iarr; t:integer):integer;
var j:integer;
begin
 for j:=x to length(z) do
   if (z[j]>='0') and (z[j]<='9') then
     a[t]+=1;
 result:=a[t];
end;

begin
  t:=0;
  name:='C:\Users\test\Desktop\TraliVali\file.txt';
  assign(f,name);
  reset(f);
  h:=0;
  while not eof(f) do
  begin
    h+=1;
    readln(f, s[h]);
  end;
  i:=1;
  for j:=1 to length(s[1]) do
  begin
    if (s[i][j]>='0') and (s[i][j]<='9') then
    begin
      k+=1;
      if s[i+1][j]='|' then
      begin
        i+=1;
        while (s[i][j]='|') and (i<h) do
        begin
          i+=1;
          if s[i][j+1]='-' then
          begin
            t1+=1;
            a1[t1]:=k+zapolni(s[i],j,a1,t1);
          end;
        end;
      end;
      i:=1;
    end;
  end;
  max:=a1[1];
  for t1:=2 to high(a1) do
    if a1[t1]>max then
      max:=a1[t1];
  writeln(max);
  readln();
end.