Cod sursa(job #2426246)

Utilizator AlexutAlex Calinescu Alexut Data 27 mai 2019 08:49:23
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;

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

queue<int>q;
int viz[100005];
vector<int>vecini[100005];

int main()
{
 int n,m,s;
 fin>>n>>m>>s;
 int i,x,y;
 for(i=1;i<=m;i++)
 {
     fin>>x>>y;
     vecini[x].push_back(y);
 }
 viz[s]=1;
 q.push(s);
 int nc;
 while(!q.empty())
 {
     nc=q.front();
     q.pop();
     for(i=0;i<vecini[nc].size();i++)
     {
         if(viz[vecini[nc][i]]==0)
         {
             viz[vecini[nc][i]]=viz[nc]+1;
             q.push(vecini[nc][i]);
         }
     }
 }
 for(i=1;i<=n;i++)
 {
     if(viz[i]==0)
     {
         fout<<-1<<" ";
         continue;
     }
     fout<<viz[i]-1<<" ";
 }
}