Pagini recente » Cod sursa (job #2448356) | Cod sursa (job #2054617) | Cod sursa (job #1844006) | Cod sursa (job #1401376) | Cod sursa (job #238844)
Cod sursa(job #238844)
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <bitset>
using namespace std;
#define NMAX 100100
#define FIN "dfs.in"
#define FOUT "dfs.out"
#define pb push_back
int N, M, Sol;
bitset<NMAX> Viz;
vector <int> A[NMAX];
void scan(){
int a, b, i;
#ifndef __ACASA__
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
#endif
scanf ("%d%d", &N, &M);
for (i = 1; i <= M; ++i){
scanf ("%d%d", &a, &b);
A[a].pb(b);
A[b].pb(a);
}
}
void dfs(int x){
int i;
Viz[x] = true;
for (i = 0; i < A[x].size(); ++i)
if (Viz[A[x][i]] == false)
dfs(A[x][i]);
}
void solve(){
int i;
for (i = 1; i <= N; ++i)
if (Viz[i] == false){
++Sol;
dfs(i);
}
}
void print(){
printf("%d\n", Sol);
fclose(stdin);
fclose(stdout);
exit(0);
}
int main(){
scan();
solve();
print();
}