Cod sursa(job #628898)

Utilizator roxana_savulescuSavulescu Roxana roxana_savulescu Data 2 noiembrie 2011 12:02:24
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<iostream>
#include<fstream>
#include <vector>
using namespace std;
vector <int> v[100010];
int i,j,d[100010],c[100000000],sf,x,y,n,m,s;
int viz[100010];
int main()
{
	ifstream fin("bfs.out");
	ofstream fout("bfa.out");
	fin>>n>>m>>s;
		for (i=1;i<=m;i++){
		fin>>x>>y;
		v[x].push_back(y);
	}
	for (i=1;i<=n;i++){
		viz[i]=1;
		d[i]=1000000;
	}
	viz[s]=0;d[s]=0;
	c[1]=s;sf=1;i=1;
	while (i<=sf){
	 for (j=0;j<v[c[i]].size();j++)
		 if (viz[v[c[i]][j]]==1) {
			 sf++;
			 c[sf]=v[c[i]][j];
			 viz[v[c[i]][j]]=0;
			 d[v[c[i]][j]]=d[c[i]]+1;
		 }
		 i++;
	}
	for (i=1;i<=n;i++)
		if (d[i]!=1000000) fout<<d[i]<<" ";
	else
		fout<<"-1"<<"\n";
	return 0;
}