Pagini recente » Cod sursa (job #2558901) | Cod sursa (job #923756) | Cod sursa (job #999800) | Cod sursa (job #41097) | Cod sursa (job #826245)
Cod sursa(job #826245)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
vector <int> nod[100002];
int cost[100002];
queue <int> bfs;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
int n,m,r;
int a,b,i;
int c;
scanf("%d%d%d",&n,&m,&r);
for(i=1;i<=m;++i)
{
scanf("%d%d",&a,&b);
nod[a].push_back(b);
}
cost[r] = 1;
bfs.push(r);
while(!bfs.empty())
{
c = bfs.front();
bfs.pop();
a = nod[c].size();
for(i=0;i<a;++i)
if(!cost[nod[c][i]])
{
cost[nod[c][i]] = cost[c]+1;
bfs.push(nod[c][i]);
}
}
for(i=1;i<=n;++i)
printf("%d ",cost[i]-1);
return 0;
}