Hồ sơ trùng lặp

Đề bài

Mô tả

Một mạng xã hội có n hồ sơ được đánh số từ 1 đến n. Giữa các cặp hồ sơ có quan hệ bạn bè (đối xứng: nếu i là bạn của j thì j cũng là bạn của i).

Hai hồ sơ phân biệt ij được gọi là trùng lặp (doubles) nếu với mọi hồ sơ k khác ij, một trong hai điều sau đúng:

  • k vừa là bạn của i, vừa là bạn của j; hoặc
  • k không phải là bạn của i và cũng không phải là bạn của j.

Bản thân ij có thể là bạn hoặc không, không quan trọng.

Đếm số cặp không thứ tự (i,j) (ij) sao cho ij là trùng lặp. Cặp (a,b)(b,a) được xem là cùng một cặp.

Dữ liệu vào

Dòng đầu chứa hai số nguyên nm — số hồ sơ và số cặp bạn bè.

m dòng sau, mỗi dòng chứa hai số nguyên v, u (vu) cho biết hồ sơ vu là bạn của nhau. Mỗi cặp bạn bè xuất hiện không quá một lần và không có hồ sơ nào là bạn của chính nó.

Dữ liệu ra

In ra một số nguyên duy nhất — số cặp không thứ tự các hồ sơ trùng lặp.

Ràng buộc

  • 1n106
  • 0m106
  • 1v,un, vu

Ví dụ

Input Output Giải thích
3 3
1 2
2 3
1 3
3 Mọi cặp đều là trùng lặp: không có hồ sơ k thứ ba nào để kiểm tra ngoài hai hồ sơ trong cặp.
3 0 3 Tương tự, với đồ thị rỗng mọi cặp cũng đều là trùng lặp.
4 1
1 3
2 Hai cặp trùng lặp là (1,3)(2,4). Ví dụ với cặp (2,4): hồ sơ 13 đều không phải bạn của 24.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0