Cod sursa(job #2191149)

Utilizator iulius510iulius alexandru iulius510 Data 1 aprilie 2018 20:07:24
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
vector <int>A[100001];
int C[100001],m,n,s,v[100001],d[100001],l=1,k=1;
void BFS(int s)
{
    C[1]=s;
    v[s]=1;
    while(k<=l)
    {
        for(int i=0;i<A[C[k]].size();i++)
            if(v[A[C[k]][i]]==0)
             {l=l+1;C[l]=A[C[k]][i];d[A[C[k]][i]]=d[C[k]]+1;v[A[C[k]][i]]=1;}
        k++;

    }
    for(int i=1;i<=n;i++)
        if(v[i]==0)
        d[i]=-1;
}
int main()
{ifstream f("bfs.in");
 ofstream g("bfs.out");
 f>>n>>m>>s;
 for(int i=1;i<=m;i++)
 {
     int x,y;
     f>>x>>y;
     A[x].push_back(y);
 }
 BFS(s);
 for(int i=1;i<=n;i++)
 cout<<d[i]<<' ';
        return 0;
}