10484: Вага компоненти
В неорієнтований граф додають ребра. Напишіть програму, яка в деякі моменти часу знаходить суму ваг ребер в компоненті зв'язності.
Формат вхідних даних
В першому рядку записано два числа \(N\) та \(M\) (\(1 \le N,M \le 10^6\)) - кількість вершин в графі і кількість запитів додавання ребер.
В кожному з наступних \(M\) рядків мітяться запити.
Кожен запит складається з двох або чотирьох чисел. Перше число позначає код операції.
Якщо перше число 1, то за ним слідує ще три числа \(X,Y,W\). Це означає, що в граф додається ребро з вершини \(X\) в вершину \(Y\) вагою \(W\).
(\(1 \le X,Y \le N\) , \(1 \le W \le 10^3\)).
В графі можуть бути кратні ребра (тобто кілька ребере між однією парою вершин).
Якщо перше число 2, то за ним йде рівно одне число \(X\).
Це означає, що необхідно відповісти на запит, яка сума ребер в компоненті зв'язності, якій належить вершина \(X\) (\(1 \le X \le N\)).
Формат вихідних даних
Для кожної операції з кодом 2 виведіть в окремому рядку відповідь на поставлену задачу.
Приклад вхідних даних
6 10
2 1
1 1 2 1
2 1
1 2 4 2
2 1
1 1 4 3
2 1
1 3 5 3
2 5
2 6
Приклад вихідних даних
0
1
3
6
3
0
Коментарі