trang chủ / đề bài / friendcond

Điều kiện bạn bè

Đề bài

Mô tả

Một mạng xã hội có n thành viên, đánh số từ 1 đến n. Trong mạng có m cặp thành viên là bạn của nhau. Quan hệ bạn bè là hai chiều và không ai là bạn của chính mình.

Ký hiệu A−B nghĩa là A và B là bạn của nhau. Mạng xã hội được gọi là hợp lý nếu thỏa mãn điều kiện sau: với mọi bộ ba thành viên phân biệt (X,Y,Z), nếu X−Y và Y−Z thì cũng phải có X−Z.

Nói cách khác, bạn của bạn tôi cũng phải là bạn tôi.

Hãy kiểm tra xem mạng xã hội đã cho có hợp lý hay không.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m: số thành viên và số cặp bạn bè.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên phân biệt ai và bi, cho biết thành viên ai và bi là bạn của nhau.

Không có cặp bạn bè nào xuất hiện quá một lần trong dữ liệu vào.

Dữ liệu ra

In ra YES nếu mạng xã hội hợp lý, ngược lại in ra NO.

Ràng buộc

  • 3≤n≤150000
  • 0≤m≤min(150000,n(n−1)2)
  • 1≤ai,bi≤n và ai≠bi

Ví dụ

Input Output Giải thích
3 2
1 2
2 3
NO Có 1−2 và 2−3 nhưng không có 1−3.
10 4
4 3
5 10
8 9
1 2
YES Mọi quan hệ bạn bè đều rời nhau từng cặp, không tồn tại bộ ba nào vi phạm. Các thành viên 6 và 7 không có bạn nào, điều này vẫn hợp lệ.
4 3
1 3
3 4
1 4
YES Ba thành viên 1,3,4 đôi một là bạn của nhau; thành viên 2 đứng riêng.
4 4
3 1
2 3
3 4
1 2
NO Có 2−3 và 3−4 nhưng 2 và 4 không phải là bạn.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0