Pagini recente » Cod sursa (job #1472920) | Cod sursa (job #547197) | Cod sursa (job #1675466) | Cod sursa (job #2189175) | Cod sursa (job #285921)
Cod sursa(job #285921)
#include<fstream>
#include<string.h>
using namespace std;
struct nod { int inf; nod *adr;} ;
nod *v[100010];
int i,x,y,m,start,n,cost[100010],s[100010];
void add(int i, int j)
{ nod *c;
c=new nod;
c->inf=j;
c->adr=v[i];
v[i]=c;
}
void bfs(int x)
{
int i,L;
nod *p;
memset(cost,-1,sizeof(cost));
L=1;
s[L]=x; cost[x]=0;
for(i=1;i<=L;i++)
for(p=v[s[i]];p;p=p->adr)
if(cost[p->inf]==-1)
{ s[++L]=p->inf;
cost[s[L]]=cost[s[i]]+1;
}
}
int main()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>start;
for(i=1;i<=m;i++) { f>>x>>y; add(x,y); }
bfs(start);
for(i=1;i<=n;i++) g<<cost[i]<<" ";
f.close();
g.close();
return 0;
}