Збалансуй-но!#4150

Збалансуй-но!

1 секунда
64 мегабайти
Легка

Лідеру команди "Відбій" на День Народження подарували підвішене бінарне дерево. Проте, йому не сподобалось, що дерево було незбалансованим. Тепер він хоче видалити мінімальну кількість вершин у дереві, щоб воно стало збалансованим. Перед тим, як видалити вершину з дерева, він зобов'язаний видалити усі вершини з її піддерева.

Нагадаємо, що дерево є збалансованим тоді і лише тоді, коли висота його лівого і правого піддерев відрізняється не більше ніж на (висота порожнього дерева дорівнює нулю, а висота дерева з однієї вершини — одиниці). Коренем дерева є вершина .

Вхідні дані

У першому рядку вхідного файлу задано ціле число — кількість вершин у дереві (1 \leq n \leq 1111). У наступних рядках задано по два цілих числа left_i та right_i — номери лівого та правого сина вершини відповідно, або , якщо цього сина не існує.

Вихідні дані

У єдиному рядку вихідного файлу виведіть одне число — шукану мінімальну кількість вершин, що видаляються.

Приклади

Приклад 1

Loading
Loading