Задача №113664. Форум. Вывести дерево

Задачи на рекурсию под общей темой "Форум".
Несмотря на то, что некоторые задачи этого блока можно решить с помощью циклов, рекомендуем написать решение с помощью рекурсивной функции.

Дано количество сообщений на некотором форуме (\(N\) натуральное, не более \(1000\)).

Также таблица, в которой указано какие сообщения на каком уровне находятся.

В первой колонке таблицы написаны номера сообщений (натуральные числа, не превосходят \(10^6\)).

Во второй колонке напротив номера сообщения стоит либо 0, если сообщение является корнем (началом) некоторой темы, либо номер того сообщения, ответом на которое является текущее.

Пример. Следующие исходные данные:

4
1 0 
2 0
3 1
4 3
соответствуют такой структуре форума:

Гарантируется что данные во втором столбце корректны (то есть в качестве «родительского» может быть указано только существующее сообщение, а также что структура не имеет циклов и что от любого сообщения есть путь к «корню» форума).

Вывести структуру форума в виде дерева. На одной строке выведите номер одного сообщения, с отступами нужной величины. Отступы заполнить символами ‘*’ (звездочка). Сообщения каждого следующего уровня должны иметь отступ слева на две звездочки больше, чем сообщения предыдущего, при этом сообщения внутри ветки должны располагаться по возрастанию номеров.

Например, для теста 

3

1 0

2 0

3 1

Ответ будет

1

**3

2

Входные данные

Сначала вводится натуральное число \(N\) (не превышает \(1000\)) – общее количество сообщений на форуме.

Затем вводится \(N\) строк таблицы, по \(2\) числа на строке – номер текущего сообщения и номер того сообщения, ответом на которое является текущее (или \(0\)).

Выходные данные

Выведите структуру форума в описанном формате.

Примеры
Входные данные
2
1 0
7 1
Выходные данные
1
**7
Входные данные
3
1 0
4 1
9 1
Выходные данные
1
**4
**9
Сдать: для сдачи задач необходимо войти в систему