Pagini recente » Cod sursa (job #572782) | Cod sursa (job #2906270) | Cod sursa (job #2152478) | Cod sursa (job #3143819) | Cod sursa (job #861903)
Cod sursa(job #861903)
#include <iostream>
#include <cstdio>
#include <vector>
#include <bitset>
using namespace std;
#define Nmax 100001
int N, M;
int a, b;
int nr = 0;
vector <int> Graf[Nmax];
bitset <Nmax> viz;
void citire(){
freopen("dfs.in", "r", stdin);
scanf("%d%d", &N, &M);
for(; M; M--){
scanf("%d%d", &a, &b);
Graf[a].push_back(b);
Graf[b].push_back(a);
}
}
void dfs(int k){
viz[k] = 1;
vector <int> ::iterator it;
for(it = Graf[k].begin(); it != Graf[k].end(); ++it)
if(!viz[*it])
dfs(*it);
}
void rezolva(){
for(int i = 1; i <= N; i++)
if(viz[i] == 0)
nr++,
dfs(i);
}
void afis(){
freopen("dfs.out", "w", stdout);
printf("%d\n", nr);
}
int main(){
citire();
rezolva();
afis();
return 0;
}