Bữa tiệc
Đề bài
Mô tả
Có người tham dự một bữa tiệc, được đánh số từ đế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 ; khi đó 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 sẽ trở thành bạn của nhau (nói cách khác, tập gồm cùng toàn bộ bạn củ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 và — số người và số cặp bạn bè ban đầu.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (), cho biết người và người 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
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 1 2 1 3 1 4 3 4 |
1 1 |
Người 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 : khi đó đượ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 , chỉ còn hai cặp và chưa quen; chọn tiếp người là đủ. |
Bình luận