Pagini recente » Cod sursa (job #2904592) | Cod sursa (job #152192) | Cod sursa (job #2824833) | Cod sursa (job #872166) | Cod sursa (job #2616632)
#include <fstream>
#include <set>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
set<int> v[100005];
int n, m, x, y, k = 1;
bool viz[100005];
void dfs(int x, int y) {
viz[x] = y;
for (set<int>::iterator it = v[x].begin(); it != v[x].end(); it++) {
if (!viz[*it]) {
dfs(*it, y);
}
}
}
int main() {
f >> n >> m;
for (int i = 1; i <= m; i++) {
f >> x >> y;
v[x].insert(y);
v[y].insert(x);
}
for (int i = 1; i <= n; i++) {
if (viz[i] == 0) {
dfs(i, k);
k++;
}
}
g << k - 1;
return 0;
}