Cod sursa(job #3338927)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 5 februarie 2026 14:58:20
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
//
//  main.cpp
//  BFS
//
//  Created by Andrada Minca on 05.02.2026.
//

#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
struct kk{
    int val;
    int dist;
};
int n,m,s;
vector<vector<bool>> a(100000,vector<bool>(100000));
vector<int> v(100000,-1);
vector<bool>pr(100000);
void bfs(int s)
{
    stack<kk>st;
    st.push({s,0});
    pr[s]=1;
    while(!st.empty())
    {
        kk nod=st.top();
        //cout<<nod.val<<endl;
        v[nod.val]=nod.dist;
        st.pop();
        for(int i=0;i<n;i++)
        {
            if(a[nod.val][i]==1&&pr[i]==0)
            {
                st.push({i,nod.dist+1});
                pr[i]=1;
            }
        }
    }
}
int main()
{
    cin>>n>>m>>s;
    pr.resize(n);
    v.resize(n);
    a.resize(n);
    for(int i=0;i<m;i++)
    {
        int x,y;
        cin>>x>>y;
        x--;
        y--;
        a[x][y]=1;
    }
    bfs(s-1);
    for(int i=0;i<n;i++)cout<<v[i]<<" ";
    return 0;
}