Cod sursa(job #3275913)

Utilizator TonyyAntonie Danoiu Tonyy Data 11 februarie 2025 22:16:47
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin ("bfs.in");
ofstream fout("bfs.out");

const int var = 101;
vector <int> graf[101];
vector <int> v(var);
vector <bool> f(var);
void BFS(int x,int k)
{
    f[x]=1;
    for(auto i:graf[x])
    {
        if(v[i]==0) v[i]=k;
    }
    for(auto i:graf[x])
    {
        if(f[i]==0) BFS(i,k+1);
    }

}
int main()
{
    int n,m,s,x,y;
    fin>>n>>m>>s;
    for(int i=0;i<m;i++)
    {
        fin>>x>>y;
        graf[x].push_back(y);


    }
    v[s]=1;
    BFS(s,1);
    v[s]=0;
    for(int i=1;i<=n;i++) if(v[i]>0 || i==s)fout<<v[i]<<' ';
    else fout<<-1<<' ';
    return 0;
}