Cod sursa(job #382097)

Utilizator mihai_voiVoicescu Mihai mihai_voi Data 12 ianuarie 2010 20:28:19
Problema Orase Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream.h>
int n,m,x,y,i,C[10001],p,u,a[101][101],viz[101],t[101];
int main()
{ int j,k;
	ifstream f("orase.in");
	ofstream g("orase.out");
	f>>n>>m>>x>>y;
	for(i=1;i<=m;i++)
	{
		f>>j>>k;
		a[j][k]=a[k][j]=1;
	}
//introduvem in coada nodul de start
p=u=1;C[p]=x;viz[x]=1;	

while(p<=u){  //cat timp coada e nevida
	//primul element introduce in coada orasele cu care are legatura directa nevizitate
	for(i=1;i<=n;i++)
	{
		if(viz[i]==0&&a[C[p]][i]==1) // i are lagatura directa cu C[p] si este introdus in coada
		{
			u++;
			C[u]=i;
			viz[i]=viz[C[p]]+1;
			t[i]=C[p];
			if(viz[y]!=0)
			  {p=u;
			   break;
			  }
		}
	}		
 p++;	
}
if(viz[y]!=0)
{ g<<viz[y]-1<<'\n';
  int k=0;
  while (y!=0)
  { k++;
    viz[k]=y;
	y=t[y];
  }
  for(i=k;i>=1;i--)
	   g<<viz[i]<<" ";
}	
return 0;
}