Cod sursa(job #1003663)

Utilizator valiro21Valentin Rosca valiro21 Data 1 octombrie 2013 10:52:17
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#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;
}