Cod sursa(job #2503766)

Utilizator ancaoxoxSfia Anca ancaoxox Data 3 decembrie 2019 19:11:03
Problema Lowest Common Ancestor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb

//#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;

ofstream cout("bfs.out");
ifstream cin("bfs.in");

vector<int> v[100005];
queue<int> s;
bool fol[100005];
int dist[100005];


void bfs(int nod)
{
    int top;

    while (s.empty()==false)
    {
        top=s.front();
        s.pop();
        for (int i=0; i<v[top].size(); i++)
        {
            if (fol[v[top][i]]==0)
            {
                fol[v[top][i]]=1;
                dist[v[top][i]]=dist[top]+1;
                s.push(v[top][i]);
            }
        }
    }
}


int main()
{
    int n, i,m,a,b, st,cnt=0;
    cin>>n>>m>>st;

    for (i=1; i<=n; i++)
    dist[i]=-1;

    s.push(st);
    fol[st]=1;
    dist[st]=0;

    for(i=1;i<=m;i++){
        cin>>a>>b;
        v[a].push_back(b);
    }

    bfs(st);

    for (i=1; i<=n; i++)
    cout << dist[i] << " ";
    return 0;
}