Cod sursa(job #2581759)

Utilizator Catalin007Botezat Catalin Catalin007 Data 15 martie 2020 19:02:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
#define ll long long
#define pb push_back




using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
ll n, m, i, x, y, s, d[200005];

queue<ll>q;
bool visited[200005];
vector<ll>adj[200005];

int main()
{
    fin>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        adj[x].pb(y);

    }
    for(i=1;i<=n;i++)
        {visited[i]=false; }

    visited[s]=true;
    d[s]=0;


    q.push(s);
    while(q.size()){
        x=q.front(); q.pop();
        for(auto y:adj[x]){
            if(!visited[y])
                {visited[y]=true;
            d[y]=d[x]+1;
            q.push(y);}
        }
    }

    for(i=1;i<=n;i++ )
        if(d[i]>0 || i==s)
        fout<<d[i]<<" ";
    else
        fout<<-1<<" ";
    return 0;
}