Pagini recente » Rating Moldovan Andrei (Dei_Andrei_rg) | Cod sursa (job #50244) | Cod sursa (job #1506866) | Cod sursa (job #1680160) | Cod sursa (job #1244858)
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
int N, M;
vector<vector<int>> adj(100001);
vector<bool> marked(100001, false);
void dfs(int source){
for(int i = 0; i < adj[source].size(); i++){
if(!marked[adj[source][i]]){
marked[adj[source][i]] = true;
dfs(adj[source][i]);
}
}
}
int main(){
int from, to, cnt = 0;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%d", &N, &M);
for(int i = 0; i < M; i++){
scanf("%d%d", &from, &to);
adj[--from].push_back(--to);
adj[to].push_back(from);
}
for(int i = 0; i < N; i++){
if(!marked[i]){
dfs(i);
cnt ++ ;
}
}
printf("%d\n", cnt);
return 0;
}