Cod sursa(job #615633)

Utilizator bogdan353Costea Bogdan bogdan353 Data 10 octombrie 2011 13:55:41
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#include<vector>
using namespace std;

int n,m,s;
vector<int> a[10010];
int b[10010],c[10010];

void bfs(int k)
{
	for(int i=0;i<=n;i++)
		b[i]=-1;
	int l=1;
	b[k]=0;
	c[1]=k;
	for(int i=1;i<=l;i++)
		for(int j=0;j<a[c[i]].size();j++)
			if(b[a[c[i]][j]]==-1)
			{
				l++;
				c[l]=a[c[i]][j];
				b[c[l]]=b[c[i]]+1;
			}
}
			

	

int main()
{
	ifstream f("bfs.in");
	ofstream g("bfs.out");
	
	f>>n>>m>>s;
	
	
	
	for(int i=1;i<=m;i++)
	{
		int x,y;
		f>>x>>y;
		a[x].push_back(y);
	}
	
bfs(s);
for(int i=1;i<=n;i++)
	g<<b[i]<<" ";


	
}