Cod sursa(job #2321117)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 15 ianuarie 2019 18:36:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define N 100005
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,s;
vector<int>g[N];
int viz[N];


void read()
{int i,x,y;
 fin>>n>>m>>s;
 for(i=1;i<=m;++i)
 {fin>>x>>y;
  if(x!=y)g[x].push_back(y);
 }

 /*for(i=0;i<g[5].size();++i)
     cout<<g[5][i]<<" ";*/

}

void bfs(int x)
{ queue<int>c;

  int i,v;
  viz[x]=1;
  c.push(x);
  while(!c.empty())
  {v=c.front();c.pop();
   //cout<<v<<" ";
  for(i=0;i<g[v].size();++i)
     if(viz[g[v][i]]==0)
     {viz[g[v][i]]=viz[v]+1;
      c.push(g[v][i]);
     }
   }

}


int main()
{    read();
     bfs(s);
     int i;
     for(i=1;i<=n;++i)
        if(viz[i]==0)fout<<-1<<" ";
        else fout<<viz[i]-1<<" ";

    return 0;
}