#862. DISTANCE - Khoảng cách

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một cây ban đầu có N đỉnh, N-1 cạnh, người ta xóa hết các cạnh của cây, sau đó thực hiện Q truy vấn, mỗi truy vấn thuộc một trong hai loại:

  • Loại 1 : Cho bởi bộ 4 số (1, u, v, w) nghĩa là truy vấn thực hiện thêm cạnh có trọng số w giữa hai đỉnh u, v . Ví dụ: (1, 1, 3, 4) tức là thêm cạnh có trọng số 4 từ 1 đến 3 . Cạnh được thêm vào đảm bảo không xuất hiện chu trình.
  • Loại 2 : cho bởi bộ 3 số (2,u,v) , hỏi độ dài đường đi ngắn nhất từ đỉnh u đến đỉnh v hiện tại bằng bao nhiêu. Nếu không có đường đi thì in ra -1 .

Các truy vấn là xen kẽ nhau. Hãy trả lời cho các truy vấn loại 2 .

Dữ liệu vào:

  • Dòng đầu tiên là hai số N Q ;
  • Q dòng sau thể hiện các truy vấn có thể loại 1 hoặc loại 2 .

Dữ liệu ra:

  • In ra câu trả lời cho các truy vấn loại 2 theo thứ tự của nó.

Ví dụ:

Dữ liệu vào:

5 8
1 1 2 5
1 3 5 7
2 2 4
1 5 4 1
2 3 4
1 1 5 6
2 1 4
2 2 4

Dữ liệu ra:

-1
8
7
12

Giới hạn:

  • 1 \le N, Q \le 2\times 10^5; 1\le w \le 10^4 .