Pagini recente » Rating Teodora Schipor (teoschipor) | Cod sursa (job #659007) | Cod sursa (job #885140) | Cod sursa (job #2464848) | Cod sursa (job #825159)
Cod sursa(job #825159)
#include<cstdio>
#include<algorithm>
#include<deque>
#include<cstring>
#include<vector>
using namespace std;
int m,x,n,i,j,k,a,b,y,rez[100005];
vector<int>v[100005];
deque<int>c;
bool viz[100005];
void bfs(int x)
{
c.push_back(x),viz[x]=true;
while (!c.empty())
{
x=c.front();
for (j=0;j<v[x].size();j++) if (!viz[v[x][j]]) c.push_back(v[x][j]),viz[v[x][j]]=true,rez[v[x][j]]=rez[x]+1;
c.pop_front();
}
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d %d %d",&n,&m,&x);
memset(rez,-1,sizeof(rez));
rez[x]=0;
for (i=1;i<=m;i++) scanf("%d %d",&a,&b),v[a].push_back(b);
bfs(x);
for (i=1;i<=n;i++) printf("%d ",rez[i]);
}