Cod sursa(job #2975132)

Utilizator Criss161803Fara Nume Criss161803 Data 5 februarie 2023 15:24:51
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int>lista[100010];
queue<int>q;
int dist[100010],n,x,y,m,cnt,p,val;
int viz[100010];
void Bfs( int nod )
{
    q.push(nod);
    dist[nod]=0;
    while(!q.empty())
    {
        p=q.front();
        viz[p]=1;
        q.pop();
        for(auto urmator:lista[p])
            if(viz[urmator]==0)
            {
                viz[urmator]=1;
                dist[urmator]=dist[p]+1;
                q.push(urmator);
            }
    }
}
int main()
{
    fin >> n >> m>>val;

    for( int i = 1; i <= m; i++ )
        {
            fin >> x >> y;
            lista[x].push_back( y );
        }

    Bfs(val);
    for(int i=1;i<=n;i++)
        if(viz[i]==0) fout<<-1<< ' ';
        else fout<<dist[i]<<' ';
    
    return 0;
}