Pagini recente » Cod sursa (job #875228) | Cod sursa (job #2856982) | Cod sursa (job #96505) | Cod sursa (job #3281908) | Cod sursa (job #2374719)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
vector < int > arbore[100005];
bitset < 100005 > trecut;
int n,m,k,x,y;
void dfs(int sursa){
trecut[sursa]=true;
vector < int > ::iterator it;
for(it=arbore[sursa].begin();it!=arbore[sursa].end();++it){
int vecin=*it;
if(trecut[vecin]==0) dfs(vecin);
}
}
int main()
{
in>>n>>m;
for(int i=1;i<=m;++i){
in>>x>>y;
arbore[x].push_back(y);
arbore[y].push_back(x);
}
for(int i=1;i<=n;++i){
if(trecut[i]==0) {dfs(i);k++;}
}
out<<k;
return 0;
}