Завдання № 4
відбірково-тренувальних зборів
команди міста Києва

1. Вуличнi перегони
Орґанiзацiйний комiтет велосипедних перегонiв Лазуровий Берег-99 звернувся до жандармерiї Сан-Тропе з проханням дозволити провести велосипеднi перегони вулицями цього курортного мiстечка таким чином, щоб кожен учасник мав би певну свободу у виборi шляху до фiнiшу. Жандармерiя у вiдповiдь надiслала в органiзацiйний комiтет план проведення таких перегонiв. На плані пункти-перехрестя було позначено кругами i занумеровано натуральними числами в межах вiд 1 до певного натурального числа n, а окремi дiлянки перегонiв — вулицi з одностороннiм рухом — позначено стрiлками. На цьому планi:

Деякi пункти неможливо уникнути на шляху вiд старту до фiнiшу, не рахуючи останнiх.

Деякi з пунктiв, якi неможливо уникнути на шляху вiд старту до фiнiшу, розбивають план перегонiв на два плани. Інакше кажучи:

Завдання
Створiть програму race.*, яка допоможе членам органiзацiйного комiтету провести аналiз поданого плану.

Вхідні дані
Кiлькiсть рядкiв вхiдного файлу race.in дорiвнює n — кiлькостi всiх пунктiв перегонiв, що не перевищує 222. Для j в межах вiд 1 до n включно j-ий рядок цього ж файлу мiстить номери кiнцевих пунктiв тих стрiлок, якi виходять з j-го пункту.

Вихідні дані
Перший рядок вихiдного файлу race.out має мiстити у вказаному порядку номери пунктiв, що є стартом i фiнiшом.
Другий рядок цього самого файлу має мiстити кiлькiсть пунктiв, якi неможливо уникнути на шляху вiд старту до фiнiшу та номери цих пунктiв у порядку зростання.
Третiй рядок цього самого файлу має мiстити кiлькiсть пунктiв, якими можна розбити поданий план перегонiв на окремi плани, та номери цих пунктiв у порядку зростання.

Приклад

race.inrace.outплан
3
3
4 5
6
6
7 8
9
5 9

1 2
10 9
2 3 6
1 3







2. Криптограма
Завдання
Створiть програму cripto.*, яка дешифрує запису дiї додавання, в якому всi доданки роздiлено знаком +, перед сумою стоїть знак =, а кожну цифру замiнено на лiтеру, причому:

Вхідні дані
Перший рядок вхiдного файлу cripto.in мiстить натуральне число, яке є основою системи числення i лежить в межах вiд 5 до 10 включно.
Другий рядок цього самого файлу мiстить запис дії додавання. Роздiлення доданкiв, суми, знакiв + i = додатковими прогалинами не передбачається.

Вихідні дані
Файл cripto.out має містити всi способи дешифрацiї поданого запису дiї додавання по одному у кожному рядку без повторення (порядок довільний).

Приклад

cripto.incripto.out
10
ten+ten+forty=sixty
850+850+29786=31486