Две мистические буквы из дерева
Вам следует извлечь 2 буквы из бинарного дерева, составленного из беззнаковых целых чисел согласно следующих правил. Пусть n - высота дерева. На уровне k (1 ≤ k ≤ n) дерево содержит k вершин, каждая из которых имеет 2 детей (кроме вершин - листьев на уровне n, которые не имеют детей). Внизу приведен пример структуры дерева. Некоторые вершины могут иметь 2 родителя.
Пример:
Вам следует пройти по дереву по пути максимальной суммы (например 1 + 5 + 9 = 15). Числа в каждой сумме не могут идти по непересекающимся ссылкам (то есть 5 + 7 не допустимо). Ваша промежуточная задача - вычислить 2 числа для извлечения букв. Первое число вычисляется по формуле i^2, где i - число вдоль пути наибольшей суммы, а n - высота дерева.
Второе число - суммирование по максимальному пути (i ). Для приведенного выше примера первое число = 1 + 25 + 81 = 107, второе число = 1 + 5 + 9 = 15.
И, наконец, эти два числа преобразуются в две буквы нижнего регистра от 'a' до 'z', где 'a' используется для 0, а 'z' - для 25. Поскольку всего имеется только 26 букв, числа больше 25 будут обозначать одни и те же буквы. Например 107 = 'd' и 15 = 'p' (то есть первой буквой является 'a' = 0, или 26, или 52 и так далее).
Напишите программу, которая найдет 2 мистические буквы по заданному дереву.
Входные данные
Первая строка содержит высоту n (0 < n < 100) дерева. вторая строка содержит последовательно беззнаковые целые числа i (0 < i < 100) для каждого уровня дерева. Считайте, что в дереве существует только один максимальный путь.
Выходные данные
В первой строке выведите два целых числа, вычисленных по выше приведенным правилам, а во второй строке выведите 2 декодированные буквы.