eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Genealogic tree

Genealogic tree

На дні народження Іри було багато родичів, так що знайомство з ними виявилось не простим завданням. Для того, щоб отримати загальну картину, виникла ідея скласти генеалогічне дерево. У сумбурній обстановці якось так сталось, що дерево виявилось не бінарним, хоча кількість вершин була цілком логічною --- \textbf{2^k-1}. --- \textit{Щось тут не так. } --- \textit{Да ну? } --- \textit{Я пропону все переперевірити. } --- \textit{Конкретніше. } --- \textit{Разіб'ємо дерево на зв'язні частини по} \textbf{2^i} \textit{вершин і доручимо кожному перевірити свою частмну. } --- \textit{Чому саме так?} --- \textit{Не знаю, люблю степені двійки, і до того ж у сумі буде рівно те, що потрібно. Хоча тут є маленька проблема, це можна зробити кучею способів. } --- \textit{Да, я пом'ятаю судоку і залікові книжки. Скільки ж на цей раз? } --- \textit{У тебе прекрасна пам'ять, дай мені декілька хвилин на подумати}. --- \textit{Лови.} \InputFile У першому рядку задано число \textbf{N}=\textbf{2^k-1} --- кількість вершин у дереві (\textbf{1} ≤ \textbf{k} ≤ \textbf{12}). У наступному рядку задано \textbf{N-1} число. \textbf{a_i} (\textbf{1} ≤ \textbf{a_i} < \textbf{i+1}) означає наявність ребра між вершинами \textbf{i+1} та \textbf{a_i}. Вершини пронумеровано від \textbf{1}. \OutputFile Вивести одне число --- кількість способів розділити дерево рівно на \textbf{k} зв'язних блоків розмірами \textbf{1}, \textbf{2}, \textbf{4}, ..., \textbf{2^k-1}. Кожна вершина повинна потрапити рівно в один блок.
Ліміт часу 1 секунда
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
7
1 1 2 2 3 3
Вихідні дані #1
4