Cod sursa(job #3361609)

Utilizator Darius9705Darius boros Darius9705 Data 26 iulie 2026 13:43:45
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.15 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<vector<int>> v(100001);
queue<int> q;
int ramas[100001],viz[100001],pasi[100001];
int main()
{
    int n,i,j,m,s,x,y;
    fin>>n>>m>>s;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);
        ramas[x]++;
    }
    q.push(s);
    viz[s]=1;
    while(!q.empty())
    {
        for(j=0;j<ramas[q.front()];j++)
        {
            if(viz[v[q.front()][j]]==0)
            {
                viz[v[q.front()][j]]=1;
                pasi[v[q.front()][j]]=pasi[q.front()]+1;
                q.push(v[q.front()][j]);
            }
            
        }
        q.pop();
    }
    for(i=1;i<=n;i++)
    {
        if(viz[i]==1) fout<<pasi[i]<<" ";
        else fout<<-1<<" ";
    }
    return 0;
}