Олимпиадный тренинг

Задача . F. Растущее дерево


Дано корневое дерево с корнем в вершине \(1\), изначально состоящее из одной вершины. У каждой вершины есть числовое значение, изначально равное \(0\). Так же есть \(q\) запросов двух типов:

  • Первый тип запроса: добавить ребёнка с номером \(sz + 1\) к вершине \(v\), где \(sz\) — текущий размер дерева. Числовое значение новой вершины также равно \(0\).
  • Второй тип запроса: Прибавить \(x\) ко всем числовым значений вершин в поддереве вершины \(v\).

После всех запросов нужно для каждой вершины вывести его итоговое числовое значение.

Входные данные

В первой строке содержится единственное число \(T\) (\(1 \leq T \leq 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число \(q\) (\(1 \leq q \leq 5 \cdot 10^5\)) — Изначальное количество запросов.

Далее следует \(q\) строк. Далее возможно два случая:

  • Первый тип запроса. В \(i\)-й строке дано два целых числа \(t_i\) (\(t_i = 1\)), \(v_i\). Нужно добавить ребёнка с номером \(sz + 1\) к вершине \(v_i\), где \(sz\) — текущий размер дерева. Гарантируется, что \(1 \leq v_i \leq sz\).
  • Второй тип запроса. В \(i\)-й строке дано три целых числа \(t_i\) (\(t_i = 2\)), \(v_i\), \(x_i\) (\(-10^9 \leq x_i \leq 10^9\)). Нужно прибавить \(x_i\) ко всем числовым значениям вершин в поддереве вершины \(v_i\). Гарантируется, что \(1 \leq v_i \leq sz\), где \(sz\) — текущий размер дерева.

Гарантируется что сумма \(q\) по всем тестовым наборам не превосходит \(5 \cdot 10^5\).

Выходные данные

После всех запросов выведите числовые значения каждой вершины конечного дерева.

Примечание

В первом примере итоговое дерево с числовыми значениями будет выглядеть так:

Итоговое дерево с числовыми значениями

Примеры
Входные данныеВыходные данные
1 3
9
2 1 3
1 1
2 2 1
1 1
2 3 2
1 3
2 1 4
1 3
2 3 2
5
2 1 1
1 1
2 1 -1
1 1
2 1 1
5
1 1
1 1
2 1 1
2 1 3
2 2 10
7 5 8 6 2 
1 0 1 
4 14 4

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя