Pagini recente » Cod sursa (job #2964752) | Cod sursa (job #1643600) | Cod sursa (job #1917866) | Cod sursa (job #3227987) | Cod sursa (job #1003663)
#include <cstdio>
#include <vector>
using namespace std;
//defines
#define For(i,a,b) for(long i=a;i<=b;i++)
#define scan scanf
//stl defines
#define V vector<long>
#define Q queue<long>
#define IFor(i,V a) for(V::iterator i=a.begin();i<a.end();i++)
#define pb push_back
#define pf pop_front
//variables
V v[NMax];
long n,m,x,viz[NMax];
//breadth-first search(BFS)
void bfs(long now) {
Q q;
q.pb(now);
while(!q.empty()) {
now=q.front(); //get next element
IFor(i,v[now])
q.pf(); //remove current element
}
}
//main
int main()
{
freopen("dfs.in","rt",stdin);
freopen("dfs.out","wt",stdout);
scan("%ld %ld",&n,&m);
For(i,1,m)
scan("%ld %ld",x,y),
v[x].pb(y),
v[y].pb(x);
For(i,1,n)
if(!viz[i])
bsf(i),count++;
return 0;
}