Pagini recente » Cod sursa (job #2386771) | Cod sursa (job #613916) | Cod sursa (job #493438) | Cod sursa (job #1107082) | Cod sursa (job #796074)
Cod sursa(job #796074)
#include <cstdio>
#include <vector>
using namespace std;
#define LMAX 100010
int N, M, k=1;
vector<int> V[LMAX];
int viz[LMAX];
void dfs(int nod) {
viz[nod] = k;
for (int i=0, e=V[nod].size(); i<e; ++i)
if (!viz[V[nod][i]])
dfs(V[nod][i]);
}
int main () {
int x,y;
freopen("dfs.in","rt",stdin);
freopen("dfs.out","wt",stdout);
scanf("%d %d", &N, &M);
for (int i=0; i<M; ++i) {
scanf("%d %d", &x, &y);
V[x].push_back(y);
V[y].push_back(x);
}
for (int i=1; i<=N; ++i)
if (!viz[i]) {
dfs(i);
++k;
}
printf("%d", k-1);
return 0;
}