Cod sursa(job #3321430)

Utilizator oliv_1Bostinescu Octavian oliv_1 Data 9 noiembrie 2025 14:32:27
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;
vector<int>v[100005];
int dist[100005],viz[100005];
int nd;
queue<int>q;
void bfs(int t)
{
    q.push(t);
    while(q.size()>0)
    {
        nd=q.front();
        q.pop();
        viz[nd]=1;
        for(auto i : v[nd])
        {
            if(viz[i]==0)
            {
                dist[i]=dist[nd]+1;
                q.push(i);
            }
        }
    }
}
int main()
{
    ifstream cin("bfs.in");
    ofstream cout("bfs.out");
   int n,m,k;
   cin>>n>>m>>k;
   int x,y;
   for(int i=0;i<m;i++)
   {
       cin>>x>>y;
       v[x].push_back(y);

   }
  bfs(k);
  for(int i=1;i<=n;i++)
  {
      if(i==k)
        cout<<0;
      else if(dist[i]==0)
        cout<<-1;
      else
        cout<<dist[i];
      cout<<" ";
  }
    return 0;
}