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