Cod sursa(job #703557)

Utilizator freakingVlad Eu freaking Data 2 martie 2012 12:50:55
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<vector>
using namespace std;
#define maxn 100000

vector <int> A[maxn];
int G[maxn],V[maxn],S[maxn];

void bfs(int s)
{
	int L,i,j;
	memset(V, -1, sizeof(V));  
	L=1;
	V[s]=0;
	S[1]=s;
	for(i=1 ; i <= L ; i++)
		for(j=0 ; j< G[S[i]] ; j++)
			if(V[A[S[i]][j]] == -1)
			{
				S[++L]=A[S[i]][j];
				V[A[S[i]][j]]=V[S[i]]+1;
			}
}


int main()
{
	int n,m,start,j,k,i;
	ifstream in("bfs.in");
	ofstream out("bfs.out");
	
	in>>n>>m>>start;
	
	for(i=1;i<=m;i++)
	{
		in>>j>>k;
		A[j].push_back(k);
	}
	for(i=1;i<=n;i++)
	{
		G[i]=A[i].size();
	}
	bfs(start);
	
	for(i=1;i<=n;i++)
		out<<V[i]<<" ";
}