[MTTN - 2024 - Siêu Cúp] Bài 3: Phân nhóm

Xem dạng PDF

Gửi bài giải

Điểm: 150,00 (OI)
Giới hạn thời gian: 10.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
Output Only

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Có ~n~ bạn sinh viên trong Câu lạc bộ Khoa học (CLB), trong đó có ~m~ cặp bạn bè quen nhau. Hải - chủ nhiệm CLB muốn thành lập một số nhóm, sao cho trong mỗi nhóm không chứa hai bạn bất kì không quen nhau. Ngoài ra, Hải cũng muốn đảm bảo mỗi một cặp bạn trong số ~m~ cặp bạn quen nhau này đều thuộc về ít nhất một nhóm chung với nhau. Vì những yêu cầu đặc thù đó, có thể có những bạn sinh viên thuộc vào nhiều nhóm khác nhau.

Yêu cầu: Hãy phân nhóm các bạn sinh viên sao cho số lượng nhóm là ít nhất có thể. Đây là bài toán Output Only.

Input

Thí sinh tải đầu vào tại đường dẫn: https://lqdoj.edu.vn/media/uploads/olp5scpartition_PmmCALo.zip Mỗi file input chứa:

  • Dòng đầu chứa hai số nguyên ~n, m~ (~1 \le n \le 1000, 1 \le m \le \frac{n(n-1)}{2}~).
  • Mỗi dòng trong số ~m~ dòng tiếp theo chứa hai số nguyên ~u, v~ (~1 \le u, v \le n~), nghĩa là ~u, v~ là bạn bè với nhau.

Output

Với mỗi file input, nộp file output tương ứng:

  • Dòng đầu chứa số ~k~ là số nhóm được lập ra.
  • Dòng thứ ~i~ trong số ~k~ dòng tiếp theo ghi ra số ~c_i~ là số lượng bạn trong nhóm ~i~, tiếp theo sau là ~c_i~ số tương ứng là chỉ số của các bạn sinh viên trong nhóm này.
  • Output phải đảm bảo tổng số thành viên trong các nhóm không quá 10 lần số cặp bạn bè trong Input, nghĩa là ~\sum c_i \le 10 \times m~.

Sample Input 1

4 5
1 2
4 3
1 3
3 2
2 4

Sample Output 1

2
3 2 3 4
3 1 2 3

Bình luận

Hãy đọc nội quy trước khi bình luận.


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