Cod sursa(job #2207208)

Utilizator EricEric Vilcu Eric Data 25 mai 2018 10:12:31
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,k;
struct muchie{int b;muchie *n;}*a[100001],*p;
int d[100001];

void bfs(int x)
{
    int L[100003];
    L[1]=x;
    d[x]=1;
    int m=1,M=2;
    while(m<M)
    {
        for(muchie *t=a[L[m]];t!=NULL;t=t->n)if(d[t->b]==0)
        {
            L[M]=t->b;
            d[t->b]=d[L[m]]+1;
            ++M;
        }
        ++m;
    }
}
int main()
{
    f>>n>>m;
    f>>k;
    for(int i=1;i<=m;++i)
    {
        int A,B;
        f>>A>>B;
        p=new muchie;
        p->b=B;
        p->n=a[A];
        a[A]=p;
    }
    bfs(k);
    for(int i=1;i<=n;++i)g<<d[i]-1<<' ';
}