Pagini recente » Cod sursa (job #26564) | Cod sursa (job #1699071) | Cod sursa (job #2631351) | Cod sursa (job #2119319) | Cod sursa (job #2134385)
#include<bits/stdc++.h>
#define NMAX 100005
using namespace std;
struct nod {
int nr;
nod* next;
};
typedef nod* lista;
lista lda[NMAX];
int viz[NMAX];
int n,m,x,y,X,S;
int Q[NMAX];
void add(int x, lista &p) {
lista r=new nod({x,p});
p=r;
}
void BFS(int x) {
int st,dr;
viz[x]=1;
st=dr=1;
Q[1]=x;
while (st<=dr) {
x=Q[st++];
for (lista p=lda[x]; p; p=p->next) {
if (!viz[p->nr]) {
viz[p->nr]=viz[x]+1;
Q[++dr]=p->nr;
}
}
}
}
int main() {
ifstream cin("bfs.in");
ofstream cout("bfs.out");
cin>>n>>m>>S;
for (int i=1; i<=m; i++) {
cin>>x>>y;
add(y,lda[x]);
}
BFS(S);
for (int i=1; i<=n; i++) {
cout<<viz[i]-1<<" ";
}
return 0;
}