Pagini recente » Cod sursa (job #2963058) | Cod sursa (job #817891) | Cod sursa (job #2695988) | Cod sursa (job #2624641) | Cod sursa (job #2666791)
#include <iostream>
#include <vector>
#include <fstream>
const int N_MAX = 100005;
std :: vector <int> edge[N_MAX];
bool vis[N_MAX];
int n, m, nr;
void dfs(int node) {
vis[node] = true;
for (int i : edge[node]) {
if (!vis[i])
dfs(i);
}
}
int main() {
std :: ifstream fin ("dfs.in");
std :: ofstream fout ("dfs.out");
fin >> n >> m;
for (int i = 1; i <= m; ++i) {
int x, y;
fin >> x >> y;
edge[x].push_back(y);
edge[y].push_back(x);
}
for (int j = 1; j <= n; ++j) {
if (!vis[j]) {
nr++;
dfs(j);
}
}
fout << nr;
return 0;
}