Pagini recente » Cod sursa (job #1131464) | Cod sursa (job #2479302) | Cod sursa (job #2134170) | Cod sursa (job #1656197) | Cod sursa (job #1890546)
#include <fstream>
#include <vector>
using namespace std;
vector <vector <int> > a;
vector <int> d;
int q;
void read()
{
int n, m;
ifstream f("bfs.in");
f >> n >> m >> q ;
a.resize(n+1);
d.resize(n+1);
for (int i = 0, x, y; i < m; i++)
{
cin >> x >> y ;
if (x != y)
a[x].push_back(y);
}
fill(d.begin(), d.end(), -1);
d[q] = 0;
f.close();
}
void solve()
{
vector <int> x;
int c;
x.push_back(q);
for (int i = 0; i < x.size(); i++)
for (int j = 0; j < a[ x[i] ].size(); j++)
{
c = a[ x[i] ][j];
if ( d[c] == -1)
{
x.push_back(c);
d[c] = d[ x[i] ] + 1;
}
}
}
void write()
{
ofstream f("bfs.out");
for (int i = 1; i < d.size(); i++)
f << d[i] << ' ';
f.close();
}
int main()
{
read();
solve();
write();
return 0;
}