Pagini recente » Cod sursa (job #143915) | Cod sursa (job #2444651) | Cod sursa (job #1821027) | Cod sursa (job #1610662) | Cod sursa (job #3241148)
#include "bits/stdc++.h"
const int DIM = 100000;
bool vis[DIM + 5];
int n, m;
std :: vector < std :: set < int > > adj;
inline static void AddEdge(int x, int y){
adj[x].insert(y);
adj[y].insert(x);
}
inline static void DFS(int child){
vis[child] = true;
for(auto i : adj[child]){
if(vis[i] == false)
DFS(i);
}
}
inline static void Solve(){
std :: cin >> n >> m;
adj.resize(n + 1);
for(int i = 1; i <= m; i++){
int x,y;
std :: cin >> x >> y;
AddEdge(x,y);
}
int cnt = 0;
for(int i = 1; i <= n; i++){
if(vis[i] == false){
cnt ++ ;
DFS(i);
}
}
std :: cout << cnt;
}
signed main(){
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
std :: ios_base :: sync_with_stdio(false);
std :: cin.tie(0);
std :: cout.tie(0);
Solve();
return 0;
}