Cod sursa(job #874416)

Utilizator VladMSBonta vlad valentin VladMS Data 8 februarie 2013 13:20:24
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 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[100001],cs,cd,co[100001],m;
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;
        p=new nod;
        p->next=l[y];
        p->info=x;
        l[y]=p;
    }
    cs=1;
    cd=1;
    viz[st]=1;
    fout<<st<<" ";
    while(cs<=cd)
    {
    while(l[st])
    {
        if(viz[l[st]->info]==0)
            {co[cd++]=l[st]->info;
             viz[l[st]->info]=1;
             fout<<l[st]->info<<" ";
            }
            l[st]=l[st]->next;

    }
    st=co[++cs];
    }

    return 0;
}