Cod sursa(job #837039)

Utilizator VladMSBonta vlad valentin VladMS Data 17 decembrie 2012 03:23:28
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int i,j,a[10000][10000],r,x,y,vs,vd,k,n,m,viz[100000],cd[100000],nr;
int main()
{fin>>n>>m>>r;
 for(i=1;i<=m;++i)
 {
	 fin>>x>>y;
	 if(x!=y)
	 a[x][y]=1;
 }
 k=r;
 do
 {
	 for(i=1;i<=n;++i)
		 if(a[k][i]!=0&&viz[i]==0&&i!=r)
			 {cd[++vd]=i;
			  viz[i]=viz[k]+1;
			 }
	 
	 k=cd[++vs];
 }while(vd>=vs);
 for(i=1;i<=n;++i)
	 if(viz[i]==0&&i!=r)
		 fout<<-1<<" ";
	 else
		 if(viz[i]==1&&i==r)
			 fout<<0<<" ";
		 else
			 fout<<viz[i]<<" ";
 return 0;
}