Cod sursa(job #874427)

Utilizator VladMSBonta vlad valentin VladMS Data 8 februarie 2013 13:57:17
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod
{
    int info;
    nod *next;
};
nod *p,*l[100001];
int x,y,i,j,n,st,viz[3][100001],cs,cd,co[100001],m,nr,ok;
int main()
{
    fin>>n>>m>>st;
    for(i=1;i<=m;++i)
    {
        fin>>x>>y;
        p=new nod;
        p->next=l[x];
        p->info=y;
        l[x]=p;
    }
    cs=1;
    cd=1;
    viz[1][st]=1;
    while(cs<=cd)
    {ok=0;
        while(l[st])
        {

            if(viz[1][l[st]->info]==0)
                {co[cd++]=l[st]->info;
                 viz[2][l[st]->info]=viz[2][st]+1;
                 viz[1][l[st]->info]=1;
                 ok=1;
                }
            l[st]=l[st]->next;
        }
    st=co[cs++];
    }
    for(i=1;i<=n;++i)
        fout<<viz[2][i]<<" ";
    return 0;
}