Alex_tz307

DFS+Conexe

Sep 11th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. ifstream f("dfs.in");
  5. ofstream g("dfs.out");
  6.  
  7. const int NMAX = 100005;
  8. int N, M, vizitat[NMAX], cnt;
  9. vector < int > Muchii[NMAX];
  10.  
  11. void DFS(int Nod)
  12. {
  13.     vizitat[Nod]=true;
  14.     for(unsigned int i=0;i<Muchii[Nod].size();i++)
  15.     {
  16.         int vecin=Muchii[Nod][i];
  17.         if(!vizitat[vecin]) DFS(vecin);
  18.     }
  19. }
  20.  
  21. void Citire()
  22. {
  23.     f>>N>>M;
  24.     for(int i=1;i<=M;i++)
  25.     {
  26.         int x,y;
  27.         f>>x>>y;
  28.         Muchii[x].push_back(y);
  29.         Muchii[y].push_back(x);
  30.     }
  31. }
  32.  
  33. int main()
  34. {
  35.     Citire();
  36.     for(int i=1;i<=N;i++)
  37.     if(!vizitat[i])
  38.     {
  39.         cnt++;
  40.         DFS(i);
  41.     }
  42.     g<<cnt;
  43.     f.close();
  44.     g.close();
  45.     return 0;
  46. }
  47.  
Add Comment
Please, Sign In to add comment