Pagini recente » Cod sursa (job #1515838) | Cod sursa (job #2163779) | Cod sursa (job #1312980) | Cod sursa (job #825873) | Cod sursa (job #667482)
Cod sursa(job #667482)
#include<cstdio>
#include<vector>
#include<queue>
#define DN 100005
using namespace std;
int n, m, s, viz[DN];
vector<int> gr[DN];
queue <int>c;
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d%d%d", &n, &m, &s);
for(int i=1; i<=m; ++i)
{
int a, b;
scanf("%d%d", &a, &b);
gr[a].push_back(b);
}
for(int i=1; i<=n; ++i) viz[i]=-1;
viz[s]=0;
for(c.push(s); c.size(); c.pop())
{
int fr=c.front();
for(int i=0; i<gr[fr].size(); ++i)
{
int fiu=gr[fr][i];
if(-1==viz[fiu])
{
viz[fiu]=viz[fr]+1;
c.push(fiu);
}
}
}
for(int i=1; i<=n; ++i)
printf("%d ", viz[i]);
}