Thành phần liên thông mạnh

Xem dạng PDF

Mô tả bài toán: Kiểm tra tính liên thông của đồ thị có hướng

Bạn có n thành phố và m chuyến bay một chiều. Nhiệm vụ của bạn là kiểm tra xem có thể đi từ bất kỳ thành phố nào đến bất kỳ thành phố khác hay không, sử dụng các chuyến bay đã cho.


Input:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~: số lượng thành phố và số lượng chuyến bay.
  • Sau đó có ~m~ dòng, mỗi dòng chứa hai số nguyên ~a~ và ~b~: có chuyến bay một chiều từ thành phố ~a~ đến thành phố ~b~.

Output:

  • In "YES" nếu có thể đi từ bất kỳ thành phố nào đến bất kỳ thành phố khác.
  • Nếu không, in "NO" và hai số nguyên ~a~ và ~b~, đại diện cho hai thành phố mà không thể di chuyển từ ~a~ đến ~b~.

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ụ chạy:

Input:
4 5
1 2
2 3
3 1
1 4
3 4
Output:
NO
4 2



Bình luận

Hãy đọc nội quy trước khi bình luận.

Không có bình luận tại thời điểm này.

Gửi bài giải
Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout
Nguồn bài: CSES
Dạng bài
CSES
Ngôn ngữ cho phép
C
C++
Java
Kotlin
Pascal
PyPy
Python
Scratch