Pagini recente » Cod sursa (job #2778051) | Cod sursa (job #3183721) | Cod sursa (job #1279488) | Cod sursa (job #2326544) | Cod sursa (job #362166)
Cod sursa(job #362166)
#include<stdio.h>
#include<vector>
#define MAXN 100010
using namespace std;
vector <long> list[MAXN];
long l,n,m,s,viz[MAXN],cost[MAXN],lung[MAXN];
int main()
{
long i,j,x,y;
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%ld%ld%ld",&n,&m,&s);
for (i=1;i<=m;++i)
{
scanf("%ld%ld",&x,&y);
list[x].push_back(y);
}
for (i=1;i<=n;++i)
lung[i]=list[i].size();
l=1;
cost[s]=1;
viz[l]=s;
for (i=1;i<=l;i++)
for (j=0;j<lung[viz[i]];++j)
if (cost[list[viz[i]][j]]==0)
{
viz[++l]=list[viz[i]][j];
cost[viz[l]]=cost[viz[i]]+1;
}
for (i=1;i<=n;i++)
printf("%ld ",cost[i]-1);
return 0;
}