Pagini recente » Cod sursa (job #566680) | Cod sursa (job #1666255) | Cod sursa (job #1845997) | Istoria paginii utilizator/mariasfiraiala | Cod sursa (job #829503)
Cod sursa(job #829503)
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int x,y,n,m,k,cod[101],viz[101];
struct nod
{
int inf;
nod *adr;
}*l[10001];
void create(int i,int j)
{
nod *c=new nod;
c->inf=j;
c->adr=l[i];
l[i]=c;
}
void BFS()
{
nod *c;
int p=1,u=1,OK,nr;
for(int i=1;i<=n;++i)
{
p=u=1;
nr=OK=0;
for(int j=1;j<=n;++j)
cod[j]=viz[j]=0;
cod[1]=i;
viz[i]=1;
if(i==k)
{
OK=1;
}
while(u<n&&p<=u&&!OK)
{
c=l[cod[p]];
while(c!=(nod*)0x0&&!OK)
{
if(c->inf==k)
OK=1;
if(viz[c->inf]==0)
{
viz[c->inf]=1;
cod[++u]=c->inf;
}
c=c->adr;
}
++p;
}
if(OK)
g<<p-1<<" ";
else
g<<"-1"<<" ";
}
}
int main ()
{
f>>n>>m>>k;
while(m--)
{
f>>x>>y;
create(y,x);
}
BFS();
return 0;
}