Задача 4 Урок 20
Primary tabs
Дан текстовый файл, в котором с в 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.
- Log in to post comments
- 230 reads