Cod sursa(job #261858)

Utilizator mad200647Mihai Toma mad200647 Data 18 februarie 2009 20:14:55
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream.h>
ifstream f("bfs.in");
ofstream g("bfs.out");
long a[50][50],cd[100],cp[100],n,m,s,i,j,k,p,u,ok,poz,x1,x2,nr,q;
int main ()
{
f>>n>>m>>s;
for (i=1;i<=m;i++) {f>>x1>>x2;a[x1][x2]=1;}
for (i=1;i<=n;i++)
	 {nr=0;
	  p=0;u=0;
	  cd[0]=s;
	  cp[0]=nr;
	  u++;
	  ok=0;poz=0;
	  nr=1;
	  if (s==i) g<<0<<" ";
	  else {while (p<=u && ok==0)
					{q=u;
					 for (j=1;j<=n;j++) if (a[cd[p]][j]) {if (cd[p]==i) {ok=1;poz=nr;break;}
																	  else	if (j!=cd[0]){cd[u]=j;cp[u]=nr;u++;}}
					 p++;
					 if (q!=u) nr++;}
			  if (ok) g<<poz-1<<" ";
			  else g<<-1<<" ";
			 }
	  for (k=0;k<=u;k++) cd[k]=cp[k]=0;
	 }
return 0.0;
}