Cod sursa(job #1520856)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 9 noiembrie 2015 16:55:30
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>
#define Xp 100012
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> A[Xp];
int n,m,s,i,j,nr,ult,x,y,Cost[Xp],Coada[Xp];
void bfs()
{
    for(i=1;i<=n;++i) Cost[i]=-1;

    Coada[++nr]=s;
    Cost[s]=0;

    for(i=1;i<=nr;++i)
        for(ult=A[Coada[i]].size(),j=0;j<ult;++j)
            if(Cost[A[Coada[i]][j]]==-1)
            {
                Cost[A[Coada[i]][j]]=Cost[Coada[i]]+1;
                Coada[++nr]=A[Coada[i]][j];
            }
}
int main()
{
    f>>n>>m>>s;
    for(i=1;i<=m;++i)
    {
        f>>x>>y;
        A[x].push_back(y);
    }
    bfs();
    for(i=1;i<=n;++i) g<<Cost[i]<<" ";
    return 0;
}