Pagini recente » Cod sursa (job #349193) | Cod sursa (job #2032312) | Cod sursa (job #2269522) | Cod sursa (job #3152523) | Cod sursa (job #2662180)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
const int MAXN = 100000;
bool vis [MAXN + 1];
vector <int> adj[MAXN + 1];
void dfs(int currNode)
{
vis[currNode] = true;
for (int nbh: adj[currNode])
if (!vis[nbh])
dfs(nbh);
}
int main()
{
int N, M;
in >> N >> M;
int x, y;
for (int i = 0; i < M; ++i)
{
in >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
int nrComp = 0;
for (int i = 1; i <= N; ++i)
{
if (!vis[i])
{
++nrComp;
dfs(i);
}
}
out << nrComp;
return 0;
}