Pagini recente » Cod sursa (job #2320627) | Cod sursa (job #1578333) | Cod sursa (job #3219689) | Cod sursa (job #2712543) | Cod sursa (job #1944546)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int NMAX = 100000;
#define WHITE 0
vector<int> G[NMAX + 5];
vector<int> viz;
void DFS(int u, int cc)
{
viz[u] = cc;
for(int j = 0;j < (int)G[u].size();++j)
{
int v = G[u][j];
if(viz[v] == WHITE)
DFS(v, cc);
}
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
int n, m, i, u, v, cnt;
scanf("%d%d", &n, &m);
for(int i = 1;i <= m;++i)
{
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
}
viz.assign(n + 1, WHITE);
DFS(1, 1);
cnt = 1;
for(i = 1;i <= n;++i)
{
if(viz[i] == WHITE)
{
cnt++;
DFS(i, cnt);
}
}
printf("%d\n", cnt);
return 0;
}