root двоичного дерева, в узлах которого записаны положительные числа.
Удалите ровно одно ребро: дерево распадётся на две части. Посчитайте сумму значений в каждой части и перемножьте эти суммы. Верните наибольшее произведение, которое можно получить, выбрав ребро удачно.
Ответ может быть большим — верните его остаток от деления на 10⁹ + 7. Сравнивать нужно настоящие произведения, остаток берётся только у итогового.root=tree_node([4, 9, 2, None, None, 5, 1]) → 108
Сумма всего дерева 21. Если отрезать узел 2 вместе с его детьми 5 и 1, получатся части 8 и 13, произведение 104. Отрезать лист 9 выгоднее: 9 · 12 = 108. Остальные разрезы дают меньше, ответ 108.
root=tree_node([3, 3]) → 9
Ребро одно: части 3 и 3, произведение 9.
root=tree_node([4, 9, 2, None, None, 5, 1])
108
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 61 тест на сервере, включая скрытые.