Pagini recente » Cod sursa (job #700013) | Utilizatori inregistrati la Infoarena Monthly 2012 - Runda 11 | Arhiva de probleme | Cod sursa (job #505404) | Cod sursa (job #1455428)
#include<stdio.h>
#include<vector>
using namespace std;
int N, M, result = 0;
int visited[100002] = {0};
vector<int> v[100002];
void DFS(int index)
{
int j;
visited[index] = 1;
for (j=0; j<v[index].size(); j++)
if (visited[v[index][j]] == 0)
DFS(v[index][j]);
}
int main(){
int x, y, i;
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d %d ", &N, &M);
for (i = 0; i < M ; i++){
scanf("%d %d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
for (i = 1; i <= N; i ++){
if(visited[i] == 0){
result ++;
DFS(i);
}
}
printf("%d ", result);
return 0;
}