Pagini recente » Cod sursa (job #2223594) | Cod sursa (job #2886565) | Cod sursa (job #2394704) | Cod sursa (job #1587371) | Cod sursa (job #1193763)
#include <fstream>
#include <vector>
using namespace std;
ifstream is ("bfs.in");
ofstream os ("bfs.out");
vector <int> v[100001];
int n, m, s, viz[100001], k = 1;
void Read();
void Cross(int x, int k);
int main()
{
Read();
Cross(s, 1);
for(int i = 1; i <=n; ++i)
{
if(i == s || viz[i] == 0)
os << viz[i]-1 << ' ';
else
os << viz[i] << ' ';
}
return 0;
}
void Read()
{
int x, y;
is >> n >> m >> s;
for(int i = 1; i <= m; ++i)
{
is >> x >> y;
if(x != y)
v[x].push_back(y);
}
viz[s] = 1;
}
void Cross(int x, int k)
{
for(int i = 0; i < v[x].size(); ++i)
{
if(!viz[v[x][i]])
{
viz[v[x][i]] = k;
Cross(v[x][i], k+1);
}
}
return;
}