Pagini recente » Cod sursa (job #1386696) | Cod sursa (job #3229622) | Cod sursa (job #1128292) | Cod sursa (job #2764626) | Cod sursa (job #2341151)
#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;
}