#2839. SHORTPATH2 - Đường đi ngắn nhất II

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 đồ thị vô hướng, có trọng số với n thành phố và m con đường. Bạn cũng nhận được q truy vấn. Đối với mỗi truy vấn, bạn cần tìm độ dài của tuyến đường ngắn nhất giữa hai thành phố cho trước.

Dữ liệu:

  • Dòng đầu tiên chứa ba số nguyên n, m, q : số thành phố, số con đường, và số truy vấn.
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên a, b, c : một con đường từ a đến b với chiều dài c . Tất cả các con đường đều là hai chiều.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên a b : hai thành phố trong một truy vấn.

Kết quả: Đối với mỗi truy vấn, in ra độ dài của tuyến đường ngắn nhất. Nếu không có đường đi, in -1.

Ví dụ:

Dữ liệu:

4 3 5
1 2 5
1 3 9
2 3 3
1 2
2 1
1 3
1 4
3 2

Kết quả:

5
5
8
-1
3

Giới hạn:

  • 1 \le n \le 500
  • 1 \le m \le 1000
  • 1 \le q \le 10^5
  • 1 \le a, b \le n
  • 1 \le c \le 10^9