Pagini recente » Cod sursa (job #3170883) | Istoria paginii utilizator/tufa_adriana_323ca | Cod sursa (job #1514270) | Cod sursa (job #1234420) | Cod sursa (job #1465044)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#define maxN 100002
using namespace std;
int n, m;
bool viz[maxN];
vector < int > V[maxN];
void read()
{
int a, b, i;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d %d", &n, &m);
for (i = 1; i <= m; ++ i)
{
scanf("%d %d", &a, &b);
V[a].push_back(b);
V[b].push_back(a);
}
}
void dfs(int x)
{
int i;
for (i = 0; i < V[x].size(); ++ i)
if (!viz[V[x][i]])
{
viz[V[x][i]] = 1;
dfs(V[x][i]);
}
}
void write()
{
int i, nr = 0;
for (i = 1; i <= n; ++ i)
if (!viz[i])
{
++ nr;
viz[i] = 1;
dfs(i);
}
printf("%d", nr);
}
int main()
{
read();
write();
return 0;
}