Nhóm bạn
Trong một cuộc thi lập trình quốc tế gồm \(n\) sinh viên đến từ nhiều quốc gia khác nhau cùng tham gia. Trong buổi Gala tổng kết cuộc thi để trao giải ban tổ chức muốn sắp xếp những bạn quen biết nhau ngồi cùng một khu vực. Tức là trong cùng một khu vực thì 2 người bất kỳ trong đó phải có quan hệ quen biết bắc cầu với nhau
Hai người \(a, b\) được gọi là quen biết bắc cầu nếu họ quen biết trực tiếp với nhau hoặc tồn tại \(k\) người \(x_1,x_2,...x_k\) sao cho
\(a\) quen với \(x_1\)
\(x_1\) quen với \(x_2\)
...
\(x_i\) quen với \(x_{i+1}\)
...
\(x_k\) quen với \(b\)
Ban tổ chức muốn biết phải phân làm bao nhiêu khu vực và khu vực đông nhất là bao nhiêu sinh viên. Bạn hãy lập trình tính giúp ban tổ chức nhé
Input
Dòng đầu gồm 2 số \(n,m\) trong đó \(n\) là số sinh viên còn \(m\) là số mối quan hệ quen biết \((1 \leq n\leq 10^5, 1 \leq m \leq min(n*(n+1)/2,10^6)\)
Tiếp theo \(m\) dòng mỗi dòng chứa hai số \(u, v\) khác nhau thể hiện quan hệ quen biết \(u\) quen biết \(v\) và tất nhiên \(v\) cũng quen biết \(u\) \((1 \leq u, v \leq n)\)
Output
Dòng đầu là số khu vực cần được bố trí biết rằng khu vực ít nhất cũng phải có 1 người
Dòng tiếp theo là số người của khu vực đông nhất
Ví dụ
Input
10 6
8 9
3 5
4 5
3 4
1 7
2 7
Output
5
3
Giải thích Có 5 khu vực
Khu vực 1 gồm các bạn 1 2 7
Khu vực 2 gồm các bạn 3 4 5
Khu vực 3 gồm các bạn 6
Khu vực 4 gồm các bạn 8 9
Khu vực 5 gồm các bạn 10
Comments
Tham khảo
Nhóm bạn