Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Vương quốc Miraland

Dễ Đường đi ngắn nhất Dijkstra

  • 100 Điểm
  • 20% Tỉ lệ AC
  • 1 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Vương quốc Miraland có \(n\) thành phố được kết nối với nhau bởi \(m\) con đường. Vì vua Miral rất quan tâm đến hệ thống giao thông, ông muốn biết khoảng cách ngắn nhất giữa hai thành phố bất kỳ để dễ dàng điều phối quân đội và thương mại.

Bạn được giao nhiệm vụ như một nhà chiến lược, hãy giúp nhà vua trả lời \(q\) truy vấn về khoảng cách ngắn nhất giữa hai thành phố trong vương quốc!

Input

  • Dòng đầu tiên chứa ba số nguyên \(n\), \(m\) và \(q\) --- số thành phố, số con đường và số truy vấn của nhà vua.

  • \(m\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(a\), \(b\), \(c\) --- có một con đường hai chiều giữa thành phố \(a\) và thành phố \(b\) với độ dài là \(c\).

  • Cuối cùng, có \(q\) dòng, mỗi dòng chứa hai số nguyên \(x\), \(y\) --- nhà vua muốn biết khoảng cách ngắn nhất giữa thành phố \(x\) và thành phố \(y\).

Output

  • Đối với mỗi truy vấn, in ra độ dài của tuyến đường ngắn nhất giữa hai thành phố tương ứng. Nếu không tồn tại tuyến đường, in -1.

Example

Test 1

Input
4 3 5
1 2 5
1 3 9
2 3 3
1 2
2 1
1 3
1 4
3 2
Output
5
5
8
-1
3
Note
  • \(1 \leq n \leq 500\)
  • \(1 \leq m \leq n^2\)
  • \(1 \leq q \leq 10^5\)
  • \(1 \leq a, b, x, y \leq n\)
  • \(1 \leq c \leq 10^9\)

Bình luận

Chưa có bình luận nào.