Cod sursa(job #2667662)

Utilizator Axinte_CalinAxinte Calin Axinte_Calin Data 3 noiembrie 2020 18:41:34
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#include <fstream>
using namespace std;

#define pb push_back
const int NMax = 1e+5;

fstream fin("bfs.in",ios::in),fout("bfs.out",ios::out);

vector<int> adj[NMax];
bool viz[NMax];
int main()
{
    int n,m,i,j,p;
    fin>>n>>m>>p;
    while(m--)
    {
        fin>>i>>j;
        adj[i].pb(j);
    }
    vector<int> v(n,-1);
    queue<int> q;
    q.push(p);
    viz[p]=true;
    v[p]=0;
    while(!q.empty())
    {
        int node=q.front();
        q.pop();
        for(auto it=adj[node].begin();it!=adj[node].end();++it)
            if(!viz[*it])
                q.push(*it),
                viz[*it]=true,v[*it]=v[node]+1;
    }
    for(int i=1;i<=n;i++) fout<<v[i]<<' ';
}