Skip to content

Files

Latest commit

1de5553 · Jan 24, 2023

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 24, 2023
Jan 24, 2023
Jan 24, 2023

O. Граница дерева

Дано укоренённое бинарное дерево на N вершинах. Скажем, что вершина v находится на границе дерева, если она подходит под любое из условий:

  • v является листом;
  • пусть v находится на расстоянии h от корня. Тогда v — самая левая или самая правая вершина среди всех вершин на расстоянии h от корня.

Найдите все вершины, находящиеся на границе дерева.

Формат ввода

В первой строке записаны два целых числа: количество вершин в дереве n (1 ≤ n ≤ 2⋅105) и rootid (0 ≤ rootid ≤ n−1) — номер вершины-корня.

В следующих n строках описаны вершины. Каждая вершина описывается двумя числами, записанными через пробел: id левого потомка и id правого потомка. Все id находятся в диапазоне [0;n−1]. Если у вершины нет какого-то потомка, то вместо его id будет − 1.

Гарантируется, что входные данные корректны.

Формат вывода

В единственной строке через пробел выведите в любом порядке все id вершин, которые находятся на границе дерева. Каждая вершина должна быть выведена не более одного раза.

Пример

10 0
1 2
3 4
5 6
7 -1
8 -1
-1 -1
9 -1
-1 -1
-1 -1
-1 -1
5 8 9 1 0 7 3 2 6