Pagini recente » Cod sursa (job #2926959) | Cod sursa (job #3168758) | Cod sursa (job #952373) | Cod sursa (job #1420669) | Cod sursa (job #1241062)
#include <cstdio>
#define nmv 100020
#include <queue>
#include <vector>
#include <cstring>
using namespace std;
int n,m,s;
int cost[nmv];
queue < int > q;
vector <int> gr[nmv];
void read(){
int x,y;
while(m--){
scanf("%d %d ", &x, &y);
gr[x].push_back(y);
}
}
void print(){
for(int i=1;i<=n;i++)
{
printf("%d ",cost[i]);
}
printf("\n");
}
int main(void){
freopen("bfs.in", "r" ,stdin);
freopen("bfs.out","w" ,stdout);
memset(cost,-1,sizeof(cost));
scanf("%d %d %d ", &n,&m,&s);
read();
q.push(s);
cost[s]=0;
while(!q.empty()){
int ft;
ft=q.front();
for(vector <int> :: iterator it=gr[ft].begin();it!=gr[ft].end();++it){
if(cost[*it]==-1){
q.push(*it);
cost[*it]=cost[ft]+1;
}
}
q.pop();
}
print();
}