Pagini recente » Cod sursa (job #1277726) | Cod sursa (job #357806) | Cod sursa (job #258228) | Cod sursa (job #2630383) | Cod sursa (job #2932626)
#include <fstream>
#include<vector>
#include <queue>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
vector<vector<int>>galeata;
vector<bool>folosit;
queue<int>q;
void bfs(int nod){
folosit[nod]=true;
q.push(nod);
while(!q.empty()){
int nodCurent=q.front();
q.pop();
for(auto&vecin:galeata[nodCurent]){
if(!folosit[vecin]){
folosit[vecin]=true;
q.push(vecin);
}
}
}
}
int main()
{
int n,m;
cin>>n>>m;
galeata.resize(n+1);
folosit.resize(n+1,false);
while(m--){
int a,b;
cin>>a>>b;
galeata[a].push_back(b);
galeata[b].push_back(a);
}
int compConex=0;
for(int i=1;i<=n;i++){
if(!folosit[i]){
compConex++;
bfs(i);
}
}
cout<<compConex<<" ";
return 0;
}