24.A3. CTDL> bài Kiểm tra đường bay
Kiểm tra đường bay
Trong một dự án về hàng không, FullHouse Dev được giao nhiệm vụ kiểm tra tính khả thi của hệ thống đường bay. Họ cần phải xác định xem liệu có thể di chuyển giữa bất kỳ hai thành phố nào trong hệ thống hay không.
Bài toán
Có \(n\) thành phố và \(m\) đường bay một chiều. Nhiệm vụ của FullHouse Dev là kiểm tra xem liệu có thể di chuyển từ bất kỳ thành phố nào đến bất kỳ thành phố nào khác bằng cách sử dụng các đường bay hiện có hay không.
INPUT FORMAT:
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\): số lượng thành phố và số lượng đường bay. Các thành phố được đánh số từ \(1\) đến \(n\).
- \(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(a\) và \(b\): thể hiện một đường bay một chiều từ thành phố \(a\) đến thành phố \(b\).
OUTPUT FORMAT:
- In ra "YES" nếu có thể di chuyển giữa mọi cặp thành phố.
- In ra "NO" nếu không thể, và in thêm hai số \(a\) và \(b\) thể hiện không thể di chuyển từ thành phố \(a\) đến thành phố \(b\).
- Nếu có nhiều đáp án, có thể in ra bất kỳ đáp án nào.
Ràng buộc:
- \(1 \leq n \leq 10^5\)
- \(1 \leq m \leq 2 \cdot 10^5\)
- \(1 \leq a,b \leq n\)
Ví dụ
INPUT
4 5
1 2
2 3
3 1
1 4
3 4
OUTPUT
NO
4 2
Giải thích
Trong ví dụ này, không thể di chuyển từ thành phố 4 đến thành phố 2 bằng bất kỳ tổ hợp đường bay nào. Do đó, đáp án là "NO" và một cặp thành phố không thể kết nối là 4 và 2.
Comments