n узлов с номерами от 0 до n − 1, корень — узел 0. Массив parents задаёт родителей: parents[i] — родитель узла i, а у корня parents[0] = -1.
У каждого узла есть метка — положительное целое labels[i], все метки разные.
Для каждого узла i найдите наименьшее положительное целое число, которого нет среди меток его поддерева. Поддерево узла — это сам узел и все его потомки. Верните массив из n таких чисел.parents=[-1, 0, 0, 1], labels=[2, 1, 4, 3] → [5, 2, 1, 1]
В поддереве корня метки 1, 2, 3, 4 — первой не хватает 5. У узла 1 есть метки 1 и 3, нет 2. Узлы 2 и 3 — листья без метки 1, их ответ 1.
parents=[-1, 0, 1], labels=[3, 4, 5] → [1, 1, 1]
Метки 1 нет ни у кого, поэтому у каждого поддерева первой не хватает именно 1.
parents=[-1, 2, 0, 2], labels=[4, 1, 2, 3] → [5, 2, 4, 1]
n ≤ 10⁵, len(parents) = len(labels) = nparents[0] = -1, для остальных 0 ≤ parents[i] < n; массив задаёт корректное деревоlabels[i] ≤ 10⁵, все метки различныparents=[-1, 0, 0, 1], labels=[2, 1, 4, 3]
[5, 2, 1, 1]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 36 тестов на сервере, включая скрытые.