Cod sursa(job #881675)

Utilizator flslatina95Marin Florin flslatina95 Data 18 februarie 2013 14:12:40
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,r,m;
int c[100];
int viz[100];
struct nod {
    int j;
    nod *urm;

};
nod *g[100];
void cit()
{
    int i,j;
    nod *p;
    fin>>n>>m>>r;
    while(fin>>i>>j)
    {
        p=new nod;
        p->j=j;
        p->urm=g[i];
        g[i]=p;
    }
fin.close();
}

void  tipar ()
{
    int i,j;
    nod *p;
   for(i=1;i<=n;i++)
    {
    fout<<i<<" ";
    p=g[i];
        while(p)
        {
            fout<<p->j<<" ";
            p=p->urm;
        }
    fout<<'\n';
    }
}
void bf(int r)
{
    int i,p,u,vf;
    c[1]=r;
    p=u=1;
    nod *d;
    viz[r]=1;
    while(p<=u)
    {
        vf=c[p];
        d=new nod;
        d=g[vf];
        while(d)
        {
        if(viz[d->j]==0)
            {
            u++;
            c[u]=d->j;
            viz[d->j]=viz[vf]+1;
            }
        d=d->urm;
        }
    p++;
    }
}
int main()
{
    cit();
    bf(2);
    int i;
    for(i=1;i<=n;i++)
        fout<<viz[i]-1<<" ";
    return 0;
}