Common Path

View as PDF

Submit solution

Points: 0.70 (partial)
Time limit: 0.7s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type
📘 Mô tả

Ở một vùng đồi núi, có n ngôi làng được nối với nhau bằng những con đường tạo thành một cây (giữa hai làng bất kỳ luôn có đúng một đường đi duy nhất).

Mỗi ngày, Trường và Lực đều đi từ một làng này sang một làng khác để thăm bạn bè. Cụ thể, có q kế hoạch đi chơi, mỗi kế hoạch gồm bốn ngôi làng u, v, x, y tương ứng với hành trình của Trường (từ u đến v) và Lực (từ x đến y).

Nhiệm vụ của bạn là xác định đoạn đường chung mà cả Trường và Lực đều đi qua trong ngày hôm đó. Nếu có, hãy in ra hai đầu mút ab của đoạn đường giao nhau sao cho a ≤ b. Nếu không có đoạn nào trùng, in ra -1.

📥 Input
  • Dòng đầu tiên chứa hai số nguyên nq (2 ≤ n ≤ 10⁵, 1 ≤ q ≤ 10⁵): số làng và số kế hoạch đi chơi.
  • n - 1 dòng tiếp theo, mỗi dòng chứa hai số nguyên xy: con đường nối hai ngôi làng.
  • q dòng tiếp theo, mỗi dòng gồm bốn số nguyên u, v, x, y: mô tả hành trình của Trường và Lực.
📤 Output

Với mỗi kế hoạch, in ra hai số nguyên ab đại diện cho đoạn đường chung giữa hành trình của Trường và Lực (thỏa a ≤ b), hoặc in -1 nếu không có đoạn nào chung.

🧪 Ví dụ

Input:

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

Output:

2 5 
-1
Subtask Ràng buộc Điểm
1 ~n, q ≤ 100~ 30%
2 ~n, q ≤ 10⁴~ 30%
3 Không có ràng buộc gì thêm 40%

Comments

Please read the guidelines before commenting.


There are no comments at the moment.