Cod sursa(job #3338936)

Utilizator Andrada_MincaAndrada Minca Andrada_Minca Data 5 februarie 2026 15:10:24
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
//
//  main.cpp
//  BFS
//
//  Created by Andrada Minca on 05.02.2026.
//

#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int i,j,n,x,s,y,poz,l[100005],nr,m;
vector<int> v[100001];
queue<pair<int,int>> q;
int main()
{
    cin>>n>>m>>poz;
  for(i=1;i<=m;i++)
  {
      cin>>x>>y;
      v[x].push_back(y);
  }
  q.push(make_pair(poz,0));
  while(!q.empty())
  {
      nr=q.front().second;
      j=q.front().first;
      if(l[j]==0)
      l[j]=nr+1;
      else l[j]=min(l[j],nr+1);
      for(i=0;i<v[j].size();i++)
      {
          if(l[v[j][i]]==0 || l[v[j][i]]>l[j]+1) q.push(make_pair(v[j][i],l[j]));
      }
      q.pop();
  }
  for(i=1;i<=n;i++) cout<<l[i]-1<<" ";
    return 0;
}