Pagini recente » Cod sursa (job #1281878) | Cod sursa (job #666075) | Cod sursa (job #388319) | Cod sursa (job #943096) | Cod sursa (job #382097)
Cod sursa(job #382097)
#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;
}