Pagini recente » Cod sursa (job #3254189) | Cod sursa (job #2767336) | Cod sursa (job #1107627) | Istoria paginii runda/bulangandit11 | Cod sursa (job #2326633)
#include<fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod{
int x;
nod *urm;
};
nod *Li[100],*q;
int n,a,b,cs,ci,i,ip,m,x,qu[100],viz[100],cost[100];
void bfs(int ip)
{
cs=ci=1;
qu[1]=ip;
viz[ip]=1;
cost[ip]=1;
q=new nod;
while(cs<=ci)
{
x=qu[cs];cs++;
q=Li[x];
while(q!=NULL)
{
if(viz[q->x]==0)
{
qu[++ci]=q->x;
viz[q->x]=1;
cost[q->x]=cost[x]+1;
}
q=q->urm;
}
}
}
int main()
{
fin>>n>>m>>ip;
for(i=1;i<=m;i++)
{
fin>>a>>b;
q=new nod;
q->urm=Li[a];
q->x=b;
Li[a]=q;
}
bfs(ip);
for(i=1;i<=n;i++)
fout<<cost[i]-1<<' ';
fin.close();
fout.close();
return 0;
}