Time limit: 5.0s , Memory limit: 512M , Points: 3000 (partial)
Cho đơn đồ thị vô hướng, liên thông, không có trọng số bao gồm đỉnh và
cạnh. Các đỉnh được đánh số từ
đến
và các cạnh được đánh số từ
đến
. Yêu cầu xử lý
truy vấn, mỗi truy vấn bao gồm hai đỉnh
và
, yêu cầu tính độ dài đường đi ngắn nhất giữa hai đỉnh này.
Input
- Dòng đầu tiên chứa hai số nguyên
và
,
.
dòng tiếp theo, dòng thứ
chứa hai số nguyên
và
mô tả cạnh thứ
nối hai đỉnh
.
- Dòng tiếp theo chứa số nguyên
.
dòng tiếp theo, mỗi dòng chứa hai số nguyên
và
mô tả truy vấn
,
.
- Dữ liệu đảm bảo đồ thị đã cho là đơn đồ thị liên thông.
Output
- Với mỗi truy vấn, in ra độ dài đường đi ngắn nhất giữa hai đỉnh
và
trên một dòng.
Examples
Sample Input
5 6
2 3
1 2
3 1
4 5
5 3
3 4
3
2 4
5 1
1 3
Sample Output
2
2
1
Scoring
- Subtask
điểm:
- Subtask
điểm:
- Subtask
điểm: Không có ràng buộc gì thêm
Notes
Trong ví dụ, đồ thị được mô tả trong hình sau:

Comments