Cod sursa(job #1292347)

Utilizator Bursucelthe coppice Bursucel Data 14 decembrie 2014 10:36:50
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<vector>
#define N 100006 
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s;
int viz[N];
int C[N];
int nr[N];
vector <int> a[N];
int main()
{	int i,x,y;
	f>>n>>m>>s;
	for(i=1;i<=m;i++) 
	{	f>>x>>y;
		//a[x][y]=1;
		a[x].push_back(y);
	}
	for(i=1;i<=n;i++) nr[i]=-1;
	viz[s]=1;
	C[1]=s;
	nr[s]=0;
	int p=1,u=1;
	while(p<=u)
	{	int v=C[p++];
		vector <int> :: iterator it=a[v].begin(), sf=a[v].end();
		for(;it!=sf;it++) 
			if(viz[*it]==0) {C[++u]=i; nr[*it]=nr[v]+1; viz[*it]=1;}
	}
	for(i=1;i<=n;i++) g<<nr[i]<<" ";
	g<<'\n'; g.close(); return 0;
}