Cod sursa(job #1307461)

Utilizator BlackBird_v.1.0Stephen Berg BlackBird_v.1.0 Data 2 ianuarie 2015 12:37:26
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
#define Nmax 100013
vector <int> G[Nmax];
int n,i,j,m,a,b,comp(0),source;
bool used[Nmax];
int D[Nmax];

void bfs(int node)
 {
 queue <int> Q;
 Q.push(node);
 D[node]=0;
 used[node]=1;
 while(!Q.empty())
  {
   int top=Q.front();
   vector <int>::iterator it;
   for (it=G[top].begin();it!=G[top].end();++it)
       if (!used[*it]) 
	      {
		   used[*it]=1;
	       Q.push(*it);
	       D[*it]=D[top]+1;
		  }
   Q.pop();
   }
 }

int main(void)
{
 ifstream in("bfs.in");
 ofstream out("bfs.out");
 in>>n>>m>>source;
 while(m--)
   {
   	in>>a>>b;
   	G[a].push_back(b);
   }
 bfs(source);
 for (i=1;i<=n;++i)	
    if(!used[i]) out<<"-1 ";
	        else out<<D[i]<<" ";
 return 0;
}