ICPC Practice Contest 2025 F: Friendship Components
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Lớp Siêu Quậy – một tập thể đầy năng động và tinh thần sôi nổi – đang chuẩn bị cho chuyến tham quan. Giáo viên yêu cầu các học sinh phải được chia thành các nhóm, mỗi nhóm có đúng ~K~ thành viên. Việc chia nhóm dựa trên mối quan hệ bạn bè trong lớp.
Quan hệ bạn bè được mô tả như sau:
- Nếu ~A~ là bạn với ~B~, thì ~A~ và ~B~ có thể ở chung một nhóm.
- Tính chất bắc cầu được áp dụng: nếu ~A~ là bạn với ~B~ và ~B~ là bạn với ~C~, thì ~A~ và ~C~ được coi là có liên kết (có thể ở chung một nhóm).
- "Có thể ở chung" không có nghĩa bắt buộc phải ở chung; một tập hợp học sinh có liên kết vẫn có thể được chia thành nhiều nhóm nhỏ khác nhau.
Ghi chú đặc biệt cho lớp:
- Một số học sinh không có bạn; các em sẽ tự lập thành một nhóm riêng.
- Nhóm có ít hơn ~K~ thành viên vẫn được chấp nhận (vẫn là hợp lệ).
- Một nhóm được định nghĩa là tập hợp những học sinh có liên kết với nhau trong đồ thị tình bạn.
Sau khi học sinh tự tổ chức, giáo viên muốn biết tổng cộng có bao nhiêu nhóm đã được hình thành.
Input
Dòng đầu: ba số nguyên dương ~N, M, K~ ~(N, M, K \leq 10^5)~
- ~N~: số học sinh (đánh số từ ~1...N~)
- ~M~: số quan hệ bạn bè
- ~K~: số thành viên mong muốn cho mỗi nhóm
- ~M~ dòng tiếp theo: mỗi dòng gồm hai số nguyên ~A~ và ~B~, biểu thị ~A~ và ~B~ là bạn bè.
Output
- Một số nguyên: tổng số nhóm được hình thành.
Sample Input
5 6 2
4 3
4 1
2 5
1 3
4 1
5 2
Sample Output
3
Bình luận