Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f("dfs.in");
- ofstream g("dfs.out");
- const int NMAX = 100005;
- int N, M, vizitat[NMAX], cnt;
- vector < int > Muchii[NMAX];
- void DFS(int Nod)
- {
- vizitat[Nod]=true;
- for(unsigned int i=0;i<Muchii[Nod].size();i++)
- {
- int vecin=Muchii[Nod][i];
- if(!vizitat[vecin]) DFS(vecin);
- }
- }
- void Citire()
- {
- f>>N>>M;
- for(int i=1;i<=M;i++)
- {
- int x,y;
- f>>x>>y;
- Muchii[x].push_back(y);
- Muchii[y].push_back(x);
- }
- }
- int main()
- {
- Citire();
- for(int i=1;i<=N;i++)
- if(!vizitat[i])
- {
- cnt++;
- DFS(i);
- }
- g<<cnt;
- f.close();
- g.close();
- return 0;
- }
Add Comment
Please, Sign In to add comment