Pagini recente » Formatare Textile | Cod sursa (job #2375490) | Cod sursa (job #3162635) | Cod sursa (job #2927551) | Cod sursa (job #2176209)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define MAX 100020
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
vector < int > v[MAX];
queue < int > q;
int n, m, nrc, viz[MAX];
void read()
{
int x, y;
f>>n>>m;
for(int i=1; i<=m; i++)
{
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
}
void bfs(int x)
{
q.push(x);
while(!q.empty())
{
int nod = q.front();
q.pop();
if(viz[nod]==0)
{
viz[nod]=nrc;
for(auto it : v[nod])
if(viz[it]==0)
q.push(it);
}
}
}
int main()
{
read();
for(int i=1; i<=n; i++)
{
if(viz[i]==0)
{
nrc++;
bfs(i);
}
}
g<<nrc;
}