Pagini recente » Cod sursa (job #1449307) | Cod sursa (job #3209435) | Cod sursa (job #2489492) | Cod sursa (job #2428248) | Cod sursa (job #2492181)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int n, m;
const int NMAX=100001;
vector < int > Edge[NMAX];
bitset < NMAX > Used;
void Read()
{
int x, y;
in>>n>>m;
for(int i=1; i<=m; i++)
in>>x>>y, Edge[x].push_back(y), Edge[y].push_back(x);
}
void DFS(int Node)
{
int lim=Edge[Node].size();
Used[Node]=1;
for(int i=0; i<lim; i++)
{
int next=Edge[Node][i];
if(!Used[next])
DFS(next);
}
}
int main()
{
Read();
int Comp_Conex=0;
for(int i=1; i<=n; i++)
if(!Used[i])
Comp_Conex++, DFS(i);
out<<Comp_Conex;
return 0;
}