Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define int long long
- using namespace std;
- int n, m, ans = 0, q = 0, cnt;
- vector<vector<int>> outp;
- vector<vector<int>> adj;
- vector<int> visited;
- void dfs(int u){
- outp[ans].push_back(u);
- cnt++;
- visited[u] = true;
- for(auto &x : adj[u]){
- if(!visited[x]) {
- dfs(x);
- }
- }
- }
- void connectCheck(int n){
- for(int i = 1; i<=n; i++){
- if(!visited[i]){
- ans++;
- cnt = 0;
- dfs(i);
- if(q<cnt) q = cnt;
- }
- }
- }
- void output(){
- for(int i = 1; i <= n; i++){
- if( (int)outp[i].size() < 1 ) break;
- for(auto &x : outp[i]){
- cout << x << " ";
- }
- cout << "\n";
- }
- }
- signed main(){
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- //freopen("TPLT.inp", "r", stdin);
- //freopen("TPLT.out", "w", stdout);
- cin >> n >> m;
- adj.resize(n+1);
- visited.resize(n+1, 0);
- outp.resize(n+1);
- for(int i = 0; i< m; i++){
- int x, y; cin >> x >> y;
- adj[x].push_back(y);
- adj[y].push_back(x);
- }
- connectCheck(n);
- cout << ans << " " << q << "\n";
- output(); //hàm ni để in ra các đỉnh thuộc thành phần liên thông
- return 0;
- }
- /*
- 8 7
- 1 2
- 1 3
- 2 3
- 2 4
- 3 5
- 4 6
- 7 8
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement