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

1. Вуличнi перегони

Максимальна оцінка: 100 балів
Обмеження на час: 0,15 сек.
Обмеження на пам’ять: 4 MБ
Вхідний файл: race.in
Вихідний файл: race.out
Програма: race.*

Орґан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ть програму, яка допоможе членам органiзацiйного комiтету провести аналiз поданого плану.

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

Вихідні дані
Перший рядок вихiдного файлу має м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. Криптограма

Максимальна оцінка: 100 балів
Обмеження на час: 0,15 сек.
Обмеження на пам’ять: 4 MБ
Вхідний файл: cripto.in
Вихідний файл: cripto.out
Програма: cripto.*

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

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

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

Приклад

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