Cod sursa(job #829503)

Utilizator predatorGigi Valoare predator Data 5 decembrie 2012 15:53:40
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int x,y,n,m,k,cod[101],viz[101];
struct nod
{
    int inf;
    nod *adr;
}*l[10001];
void create(int i,int j)
{
    nod *c=new nod;
    c->inf=j;
    c->adr=l[i];
    l[i]=c;
}
void BFS()
{
    nod *c;
    int p=1,u=1,OK,nr;
    for(int i=1;i<=n;++i)
    {
    p=u=1;
    nr=OK=0;
    for(int j=1;j<=n;++j)
    cod[j]=viz[j]=0;
    cod[1]=i;
    viz[i]=1;
    if(i==k)
    {
        OK=1;
    }
    while(u<n&&p<=u&&!OK)
    {
    c=l[cod[p]];
    while(c!=(nod*)0x0&&!OK)
    {
        if(c->inf==k)
        OK=1;
        if(viz[c->inf]==0)
        {
            viz[c->inf]=1;
            cod[++u]=c->inf;
        }
        c=c->adr;
    }
    ++p;
    }
    if(OK)
    g<<p-1<<" ";
    else
    g<<"-1"<<" ";
    }
}
int main ()
{
    f>>n>>m>>k;
    while(m--)
    {
        f>>x>>y;
        create(y,x);
    }
    BFS();
    return 0;
}