Bữa tiệc

Đề bài

Mô tả

n người tham dự một bữa tiệc, được đánh số từ 1 đến n. Ban đầu một số cặp người đã là bạn của nhau. Quan hệ bạn bè là hai chiều.

Ta thực hiện quá trình sau để mọi người đều quen biết nhau. Ở mỗi bước, chọn một người A; khi đó A sẽ giới thiệu tất cả bạn bè hiện tại của mình với nhau. Sau bước này, hai người bất kỳ đang là bạn của A sẽ trở thành bạn của nhau (nói cách khác, tập gồm A cùng toàn bộ bạn của A trở thành một nhóm mà mọi người trong nhóm đều là bạn của nhau).

Quá trình lặp lại cho đến khi mọi cặp người đều là bạn của nhau. Hãy tìm số bước ít nhất cần thực hiện, và chỉ ra một dãy người được chọn tương ứng.

Đồ thị bạn bè ban đầu được đảm bảo là liên thông.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm — số người và số cặp bạn bè ban đầu.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên uv (uv), cho biết người u và người v là bạn của nhau. Mỗi cặp bạn bè được liệt kê không quá một lần.

Dữ liệu ra

  • Dòng đầu in ra số bước ít nhất cần thực hiện.
  • Dòng thứ hai in ra các chỉ số người được chọn ở mỗi bước, theo thứ tự thực hiện. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n22
  • 0mn(n1)2
  • 1u,vn

Ví dụ

Input Output Giải thích
4 4
1 2
1 3
1 4
3 4
1
1
Người 1 là bạn của tất cả những người còn lại, nên chỉ cần chọn người 1: khi đó 2,3,4 được giới thiệu với nhau và mọi người đều quen biết.
5 6
1 2
1 3
2 3
2 5
3 4
4 5
2
2 3
Không ai là bạn của tất cả những người còn lại nên cần ít nhất hai bước. Sau khi chọn người 2, chỉ còn hai cặp (4,1)(4,2) chưa quen; chọn tiếp người 3 là đủ.

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 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