Pagini recente » Cod sursa (job #516411) | Cod sursa (job #2378075) | Cod sursa (job #45225) | Cod sursa (job #1411409) | Cod sursa (job #1491397)
#include <bits/stdc++.h>
using namespace std;
int n, m, x, y, k;
int viz[100005];
int L[100005];
int vec[200005];
int urm[200005];
void dfs(int in) {
viz[in] = k;
for(int poz = L[in]; poz; poz = urm[poz]) {
if(!viz[vec[poz]]) {
dfs(vec[poz]);
}
}
}
int main()
{
FILE *f = fopen("dfs.in", "r");
FILE *g = fopen("dfs.out", "w");
fscanf(f, "%d %d", &n, &m);
for(int i = 1; i <= m; i ++) {
fscanf(f, "%d %d", &x, &y);
vec[i * 2 - 1] = y;
urm[i * 2 - 1] = L[x];
L[x] = i * 2 - 1;
vec[i * 2] = x;
urm[i * 2] = L[y];
L[y] = i * 2;
}
for(int i = 1; i <= n; i ++) {
if(!viz[i]) {
k ++;
dfs(i);
}
}
fprintf(g, "%d\n", k);
return 0;
}