Liên thông

Xem PDF

Điểm: 300 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một quốc gia nọ có \(N\) thành phố. Người ta đã xây dựng \(M\) con đường một chiều để di chuyển giữa các thành phố. Quốc vương muốn đảm bảo rằng giữa hai thành phố bất kỳ, phải luôn tồn tại một cách di chuyển (trực tiếp hoặc gián tiếp) từ thành phố này đến thành phố kia. Bạn hãy kiểm tra xem ông có cần phải xây dựng các con đường mới không?

Input

  • Dòng đầu tiên chứa \(1\) số nguyên dương \(T\).
  • Tiếp theo là \(T\) bộ dữ liệu, mỗi bộ dữ liệu gồm:
  • Dòng đầu chứa \(2\) số nguyên \(N,M\) là số thành phố và số con đường \(1\) chiều.
  • Mỗi dòng trong \(M\) dòng tiếp theo gồm \(2\) số nguyên \(u,v\) (\(u \neq v\)): người ta đã xây dựng con đường \(1\) chiều từ \(u\) đến \(v\).

Output

  • Mỗi dòng là câu trả lời cho một bộ dữ liệu tương ứng: in ra YES nếu quốc vương cần xây thêm đường mới, NO nếu những con đường hiện tại đã thỏa mãn yêu cầu của ông.

Constraints

  • \(1 \leq T \leq 5\)
  • \(1 \leq N,M \leq 10^{5}\)
  • \(1 \leq u,v \leq N\)

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(N,M \leq 2000\).
  • Subtask \(2\) (\(60\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
2
3 3
1 2
2 3
3 1
3 2
1 2
2 3 
Output
NO
YES
Note
  • Trong bộ dữ liệu thứ hai, có \(2\) con đường \(1→2\)\(2→3\). Người ta không thể di chuyển từ thành phố \(3\) đến thành phố \(1\) với hai con đường này.

Bình luận