CSES - MST Edge Check | Kiểm Tra Cạnh Trong MST

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một đồ thị vô hướng có trọng số, hãy xác định với mỗi cạnh liệu nó có thể được đưa vào một cây khung nhỏ nhất hay không.

Input

Dòng đầu tiên chứa hai số nguyên \(n\)\(m\): số đỉnh và số cạnh. Các đỉnh được đánh số \(1,2,\dots,n\).

\(m\) dòng tiếp theo mô tả các cạnh. Mỗi dòng chứa ba số nguyên \(a\), \(b\), \(w\): có một cạnh giữa hai đỉnh \(a\)\(b\) với trọng số \(w\).

Bạn có thể giả sử rằng đồ thị liên thông và đơn, và mỗi cạnh xuất hiện nhiều nhất một lần trong đồ thị.

Output

Với mỗi cạnh theo thứ tự nhập, in ra YES nếu nó có thể được đưa vào cây khung nhỏ nhất, và NO nếu không.

Constraints

  • \(1 \le n \le 10^5\)

  • \(1 \le m \le 2 \cdot 10^5\)

  • \(1 \le a,b \le n\)

  • \(1 \le w \le 10^9\)

Example

Test 1

Input
5 6
1 2 4
1 3 2
2 4 2
3 4 1
3 5 3
4 5 3
Output
NO
YES
YES
YES
YES
YES

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.