Pagini recente » Cod sursa (job #2420098) | Cod sursa (job #1612881) | Cod sursa (job #162415) | Cod sursa (job #1737286) | Cod sursa (job #961732)
Cod sursa(job #961732)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int a[2500][25000];
int q[2500],l[2500],t[2500];
int p,ult,x,n;
bool sel[1000000];
void bf(int nod)
{
memset(sel,false,sizeof(sel));
memset(l,-1,sizeof(l));
int i;
p=ult=1;
t[nod]=l[nod]=0;
sel[nod]=true;
q[ult]=nod;
while(p<=ult)
{x=q[p];
for(i=1;i<=n;i++)
{
if(!sel[i] && a[x][i]==1)
{
q[++ult]=i;
sel[i]=true;
l[i]=l[x]+1;
t[i]=x;
}
}
p++;
}
}
int main()
{
int i,x1,x2,y,m;
ifstream IN("bfs.in");
IN>>n>>m>>x2;
memset(a,0,sizeof(a));
for(i=1;i<=m;i++) {IN>>x1>>y; a[x1][y]=1;}
bf(x2);
for(i=1;i<=n;i++) cout<<" "<<l[i];
return 0;
}