Pagini recente » Cod sursa (job #2255704) | Cod sursa (job #2228625) | Cod sursa (job #2255639) | Cod sursa (job #41270) | Cod sursa (job #1223465)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <bitset>
using namespace std;
int n, m, nrC;
vector<int> vec[100003];
int vizitat[1000];
void citire()
{
int x, y;
scanf("%d %d", &n, &m);
for (int i = 0; i < m; i++)
{
scanf("%d %d", &x, &y);
vec[x].push_back(y);
vec[y].push_back(x);
}
}
void dfs(int x)
{
if (vizitat[x])
return;
vizitat[x] = 1;
for (int i = 0; i < vec[x].size(); i++)
dfs(vec[x][i]);
}
void componenteConexe()
{
for (int i = 1; i <= n; i++)
{
if (!vizitat[i])
{
dfs(i);
nrC++;
}
}
}
void afisare()
{
printf("%d", nrC);
/* for (int i = 0; i < nrC; i++)
{
for (int j = 0; j < componente[i].size(); j++)
cout << componente[i][j] << " ";
cout << "\n";
}*/
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
citire();
componenteConexe();
afisare();
return 0;
}