Вам задано дерево, состоящее из \(n\) вершин. Первоначально в каждой вершине записано число \(0\).
Вам нужно обработать \(m\) запросов двух видов:
- Вам задан номер вершины \(v\). Выведите значение в данной вершине \(v\).
- Вам заданы номера вершин \(u\) и \(v\), и значения \(k\) и \(d\) (\(d \le 20\)). Вам нужно прибавить \(k\) к значению каждой вершины, расстояние от которой до пути из \(u\) в \(v\) не превосходит \(d\).
Расстояние между двумя вершинами \(x\) и \(y\) равно количеству ребер на пути из \(x\) в \(y\). Например, расстояние от \(x\) до самой \(x\) равно \(0\).
Расстояние от вершины \(v\) до некоторого пути из \(x\) в \(y\) равно минимуму из расстояний от \(v\) до любой вершины на пути из \(x\) в \(y\).
Выходные данные
Для каждого запроса первого типа выведите текущее значение в заданной вершине.
Примечание
Дерево из первого примера:
Описания некоторых запросов:
- «\(2\) \(4\) \(5\) \(10\) \(2\)»: попадающие под прибавление вершины — это \(\{4, 2, 5, 1, 3\}\);
- «\(2\) \(1\) \(1\) \(10\) \(20\)» и «\(2\) \(6\) \(6\) \(10\) \(20\)»: все вершины попадают под прибавление, так как расстояние до \(1\) (\(6\)) меньше \(20\) у любой вершины;
- «\(2\) \(3\) \(2\) \(10\) \(0\)»: попадающие под прибавление вершины — это \(\{3, 1, 2\}\);
- «\(2\) \(5\) \(2\) \(10\) \(1\)»: попадающие под прибавление вершины — это \(\{5, 2, 4, 1\}\).
| № | Входные данные | Выходные данные |
|
1
|
6
1 2
1 3
4 2
5 2
3 6
14
2 4 5 10 2
1 3
1 6
2 1 1 10 20
2 6 6 10 20
1 3
2 3 2 10 0
2 5 2 10 1
1 1
1 2
1 3
1 4
1 5
1 6
|
10
0
30
50
50
40
40
40
20
|