Cod sursa(job #3241148)

Utilizator Tudor.1234Holota Tudor Matei Tudor.1234 Data 27 august 2024 10:34:55
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include "bits/stdc++.h"
const int DIM = 100000;
bool vis[DIM + 5];
int n, m;
std :: vector < std :: set < int > > adj;
inline static void AddEdge(int x, int y){
        adj[x].insert(y);
        adj[y].insert(x);
}
inline static void DFS(int child){
          vis[child] = true;
          for(auto i : adj[child]){
               if(vis[i] == false)
                 DFS(i);
          }
}
inline static void Solve(){
            std :: cin >> n >> m;
            adj.resize(n + 1);
            for(int i = 1; i <= m; i++){
                    int x,y;
                    std :: cin >> x >> y;
                    AddEdge(x,y);
            }
            int cnt = 0;
            for(int i = 1; i <= n; i++){
                      if(vis[i] == false){
                       cnt ++ ;
                              DFS(i);

                      }
            }
        std :: cout << cnt;
}
signed main(){
       freopen("dfs.in","r",stdin);
       freopen("dfs.out","w",stdout);
       std :: ios_base :: sync_with_stdio(false);
       std :: cin.tie(0);
       std :: cout.tie(0);
       Solve();
       return 0;
}