Pagini recente » Cod sursa (job #865225) | Cod sursa (job #2551288) | Cod sursa (job #2516515) | Cod sursa (job #2031337) | Cod sursa (job #1012699)
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
int n, m, x, y, vizitat[100005], cnt;
vector<int> arr[100005];
void citire(){
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i = 1; i <= m; i++){
scanf("%d %d", &x, &y);
arr[x].push_back(y);
arr[y].push_back(x);
}
}
void DFS(int val){
vizitat[val] = 1;
for(vector<int>::iterator it = arr[val].begin(); it != arr[val].end(); ++it)
if(!vizitat[*it]){
DFS(*it);
}
}
int main() {
citire();
for(int i = 1; i <= n; i++)
if(!vizitat[i]) {
cnt++;
DFS(i);
}
printf("%d", cnt);
return 0;
}