Pagini recente » Cod sursa (job #2612028) | Cod sursa (job #2399613) | Cod sursa (job #1233041) | Cod sursa (job #1015560) | Cod sursa (job #629265)
Cod sursa(job #629265)
#include<stdio.h>
#include<vector>
using namespace std;
int stiva[1000080];
int v[100003];
int numar_nod, numar_muchii,t;
vector<int> muchii[100004];
void citire(){
scanf("%d", &numar_nod);
scanf("%d", &numar_muchii);
scanf("%d", &t);
int x,y;
for(int i=1;i<=numar_muchii;i++){
scanf("%d", &x);
scanf("%d", &y);
muchii[x].push_back(y);
}
}
void df(int nod){
int st,dr;
st=1;
dr=1;
stiva[st]=nod;
v[nod]=1;
while(st<=dr){
for(unsigned int i=0; i<muchii[stiva[st]].size();i++)
if(v[muchii[stiva[st]][i]]==0){
dr++;
stiva[dr]=muchii[stiva[st]][i];
v[muchii[stiva[st]][i]]=v[stiva[st]]+1;
}
st++;
}
}
int main(){
freopen("date.in","r",stdin);
freopen("date.out","w", stdout);
citire();
df(t);
for(int i=1;i<=numar_nod;i++)
if(v[i])
printf("%d ",v[i]-1);
else
printf("-1 ");
return 0;
}