Pagini recente » Cod sursa (job #753390) | Cod sursa (job #1280846) | Cod sursa (job #2375979) | Cod sursa (job #1681773) | Cod sursa (job #911312)
Cod sursa(job #911312)
#include <cstdio>
#include <vector>
#include <queue>
#define nMax 100010
using namespace std;
vector <int> graf[nMax];
int n;
int viz[nMax];
void bfs(int x){
queue <int> q;
q.push(x);
viz[x] = 1;
while(!q.empty()){
int nod = q.front();
q.pop();
for(unsigned int i = 0; i < graf[nod].size(); ++ i){
if(viz[graf[nod][i]] == 0){
viz[graf[nod][i]] = viz[nod] + 1;;
q.push(graf[nod][i]);
}
}
}
//viz[x] = 0;
for(int i = 1; i <= n; ++ i){
printf("%d ", viz[i] - 1);
}
}
void citire(){
int x;
int m;
scanf("%d %d", &n, &m);
scanf("%d", &x);
while(m --){
int i;
int j;
scanf("%d %d", &i, &j);
graf[i].push_back(j);
}
bfs(x);
}
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
citire();
return 0;
}