Pagini recente » Cod sursa (job #1618656) | Cod sursa (job #2906443) | Profil Lieserl | Profil roxana_2222 | Cod sursa (job #1766049)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream f ("dfs.in");
ofstream g ("dfs.out");
int x,poz,n,m,i,y,k;
queue < int > Q;
vector < int > vec[100001];
vector < int > :: iterator ii;
bool vizitat[100001];
int bfs(int nod)
{
Q.push(nod);
vizitat[nod] = true;
while(!Q.empty())
{
x = Q.front();
ii = vec[x].begin();
while(ii != vec[x].end())
{
if(!vizitat[*ii])
Q.push(*ii),vizitat[*ii] = true;
++ii;
}
Q.pop();
}
}
int main()
{
f >> n >> m;
for(i = 1; i <= m; i++)
{
f >> x >> y;
vec[x].push_back(y);
vec[y].push_back(x);
}
for(i = 1 ; i <= n; i++)
if(!vizitat[i])
bfs(i),k++;
g << k <<" ";
return 0;
}