Pagini recente » Cod sursa (job #3233677) | Cod sursa (job #1686765) | Cod sursa (job #1759638) | Cod sursa (job #2263460) | Cod sursa (job #505800)
Cod sursa(job #505800)
#include<fstream>
#include<vector>
#include<queue>
#include<bitset>
using namespace std;
void read();
void BFS(int );
void write();
bitset<100001>s;
int n, m, k;
vector<vector<int> > a;
queue<int > Q;
vector<int > t, d;
int main()
{
read();
BFS(k);
write();
return 0;
}
void read()
{
ifstream fin("bfs.in");
int i , j;
fin >> n >> m >> k;
a.resize(n+1);
t.resize(n+1);
d.resize(n+1, -1);
while( fin >> i >> j)
a[i].push_back(j);
fin.close();
}
void BFS(int x)
{
Q.push(x);
s[x] = 1;
t[x] = 0;
d[x] = 0;
while( !Q.empty() )
{
int j = Q.front();
Q.pop();
for(int i = 0; i < (int)a[j].size(); ++i)
{
int p = a[j][i];
if( !s[p] )
{
Q.push(p);
s[p] = 1;
t[p] = j;
d[p] = d[j] + 1;
}
}
}
}
void write()
{
ofstream fout("bfs.out");
for(int i = 1; i <= n; i++)
fout << d[i] <<" ";
fout.close();
}