Pagini recente » Cod sursa (job #2380342) | Cod sursa (job #548112) | Cod sursa (job #823401) | Cod sursa (job #1477438) | Cod sursa (job #1315403)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int n,m,t[100000],viz[100000],nr=1;
struct nod
{
int val;
nod *urm;
} tnod;
nod *p,*nou,*v[100000];
void bfs(int a)
{
int ok=0;
p=v[a];
if(viz[p->val]==0)
{
while(p!=NULL)
if(viz[p->val]!=0)
p=p->urm;
else
{
cout<<p->val<<" ";
viz[p->val]=1;
t[p->val]+=nr;
p=p->urm;
}
ok=1;
}
p=v[a];
nr++;
if(p!=NULL&&ok==1)
bfs(p->val);
}
int main()
{
int i,j,x,y,s;
in>>n>>m>>s;
for(i=1; i<=m; i++)
{
in>>x>>y;
nou=new nod;
nou->val=y;
nou->urm=v[x];
v[x]=nou;
}
in.close();
viz[s]=1;
cout<<s<<" ";
bfs(s);
for(i=1; i<=n; i++)
if(viz[i]==1)
out<<t[i]<<" ";
else out<<-1<<" ";
out.close();
return 0;
}