Cod sursa(job #2270626)

Utilizator alex_bb8Banilean Alexandru-Ioan alex_bb8 Data 27 octombrie 2018 11:55:59
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("dfs.in");
ofstream g("dfs.out");

vector <int> G[100001];
bool viz[100001];
int d[100001];

void BFS(int node)
{
 queue <int> Q;
 Q.push(node);
 viz[node]=1;
 while(!Q.empty())
 {
   int nor=Q.front();
   Q.pop();
   for(int j=0;j<G[nor].size();++j)
   {
     int u=G[nor][j];
     if(viz[u]==0)
     {
      Q.push(u);
      d[u]=d[nor]+1;
      viz[u]=1;
     }
   }

 }

}

int main()
{
    int n,m,i,x,y,t;
    f>>n>>m>>t;
    for(i=1;i<=m;i++)
    {
     f>>x>>y;
     G[x].push_back(y);
     //G[y].push_back(x);
    }
    BFS(t);
    for(i=1;i<=n;i++)
    {
     if(d[i]==0 && i!=t) g<<-1<<" ";
     else g<<d[i]<<" ";
    }

    return 0;
}