Pagini recente » Cod sursa (job #1556937) | Cod sursa (job #1567644) | Cod sursa (job #628640) | Cod sursa (job #2144564) | Cod sursa (job #640966)
Cod sursa(job #640966)
#include <stdio.h>
#include<vector>
#define n 100010
using namespace std;
vector<int> g[n];
int sor[n], tav[n], volt[n], start1, end1, akt,N,M,S;
int i,x,y;
int main()
{
freopen("bfs.in","r",stdin);
scanf ("%d %d %d",&N,&M,&S);
for (i=1;i<=N;i++)
tav[i]=-1;
for (i=1;i<=M;i++)
{
scanf("%d %d",&x,&y);
g[x].push_back(y);
}
sor[1]=S;volt[S]=1;tav[S]=0;start1=1;end1=1;
while (start1<=end1)
{
akt=sor[start1];
for (i=0;i<g[akt].size();i++)
if (volt[g[akt][i]]==0)
{
sor[++end1]=g[akt][i];
tav[g[akt][i]]=tav[akt]+1;
volt[g[akt][i]]=1;
}
start1++;
}
freopen("bfs.out","w",stdout);
for (i=1;i<=N;i++)
printf ("%d ",tav[i]);
return 0;
}