Задача 4 Урок 18
Primary tabs
Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:
- всегда есть общий корень и это цифра
- по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака - (тире).
- по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).
Размер схемы не более чем 100 на 100 символов.
Примеры:
123451
------
4
--------------
5
-------
6
--------
7
| |
| |-------
5
---------
8
|
|-------
6
--------
7
--
7
-------
9
------
8
---
1
----
5
---
3
Ответ: 10
123456781
------
4
------
8
--------
5
-------
6
--------
7
| | |
| | |-------
5
---------
8
| |
| |--------
8
-
8
-
8
---
8
----
8
|
|-------
6
--------
7
--
7
|--------------
5
-
5
--
5
--
5
Ответ: 8
ПРИМЕЧАНИЕ: задача взята из списка соревнования IFF 2020
Задача: вывести длина самой длинной цепочки.
var f1: text; filename, s: string; i, j, c, idx, int, o, max, smax: integer; a: array [1..100] of string; begin filename := 'F:\Pascal\урок 18\i.txt'; assign(f1, filename); reset(f1); while not eof(f1) do begin readln(f1, s); for i := length(s) downto 1 do if s[i] = '-' then begin c += 1; a[c] := s; break; end; end; idx := 1; for i := 1 to c do writeln(a[i]); for i := c downto 2 do begin for j := length(a[i]) downto idx do begin if a[i][j] = '|' then begin idx := j; break; end; val(a[i][j], int, o); if o = 0 then max += 1; end; for j := idx downto 1 do if a[1][j] <> '-' then max += 1; if smax < max then smax := max; max := 0; end; for j := 1 to length(a[1]) do begin val(a[1][j], int, o); if o = 0 then max += 1; end; if smax < max then smax := max; writeln(); writeln('Максимальная длина: ', smax); readln(); end.
- Log in to post comments
- 1533 reads
vedro-compota
Wed, 08/18/2021 - 12:51
Permalink
желательно разбить код на
желательно разбить код на процедуры и функции
_____________
матфак вгу и остальная классика =)
NewDeveloper
Wed, 08/18/2021 - 17:17
Permalink
Разбил на подпрограммы