ВУЗ:
Составители:
Рубрика:
В выходном файле указываются целые числа - номера городов, из
которых можно выехать по одной дороге, а вернуться в них по другой.
Пример файлов входных и выходных данных:
INPUT.TXT
5
1 2
2 3
3 4
1 3
5 4
OUTPUT.TXT
1 2 3
Алгоритм решения
1. Выберем один город из списка. Этот город объявляем началом пути.
(Если городов больше нет - то переходим к пункту 5.)
Выберём одну из дорог, соединяющую этот город с другим.
(Если дорог больше нет - то переходим к пункту 1.)
Идём по выбранной дороге в следующий город.
Закрываем дорогу. Это делаем для того, что бы не пройти по ней
ещё раз.
2. Проверяем, не вернулись ли мы к началу? (Тогда все города на
нашем пути удовлетворяют условию задачи и мы их запоминаем!!!)
(Переходим к пункту 4.)
3. Выберем одну из дорог, соединяющую этот город с другим, в котором
ещё нет флага. (Если дорог больше нет - то переходим к пункту 4.)
Перед уходом ставим флаг. Он означает что город уже БЫЛ у нас на
пути.
Идём по выбранной дороге в следующий город. (Переходим к пункту
2.)
4. По своим следам возвращаемся в предыдущий город.
Если мы вернулись НЕ к началу пути то:
Убираем флаг. (Переходим к пункту 3.)
Если мы вернулись к началу пути то:
Открываем дорогу по которой вернулись. (Переходим к пункту 1.)
5. Все нужные города найдены...
*)
Program Plz2;
{Автор Колбешкин Д.М.}
Const MaxN = 50;
Var i,j,N,t : byte;
fin,fout : text;
a : array [1..MaxN,1..MaxN] of byte; {Матрица дорог}
b : array [1..MaxN] of byte; {Запоминаем путь}
c : array [1..MaxN] of byte; {Формируем ответ}
Procedure Rekurs(k:byte); {k - город, в котором мы сейчас}
var l:byte; {l - город, в который думаем
сходить}
begin {i - начало пути}
if k=i then {Мы вернулись к началу?}
begin
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »