Pagini recente » Cod sursa (job #1092097) | Cod sursa (job #1973508) | Cod sursa (job #3219959) | Cod sursa (job #1602886) | Cod sursa (job #1242125)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream is("bfs.in");
ofstream os("bfs.out");
vector<vector<int>> G;
int n, m, t, z, x[100];
bool a[100];
queue<int> Q;
void BFS( int S );
int main()
{
is >> n >> m;
for ( int i = 1; i <= n; i++ )
x[i] = -1;
G.resize(n+1);
for ( int i = 1; i <= m; i++ )
{
is >> t >> z;
G[t].push_back(z);
G[z].push_back(t);
}
BFS(1);
for ( int i = 1; i <= n; i++ )
os << x[i] << ' ';
is.close();
os.close();
return 0;
}
void BFS( int S )
{
Q.push(S);
x[S] = 0;
a[S] = true;
int y;
while ( !Q.empty() )
{
y = Q.front();
Q.pop();
for ( vector<int>::iterator it = G[y].begin(); it != G[y].end(); ++it )
if ( a[*it] == false )
{
x[*it] = x[y] + 1;
Q.push(*it);
a[*it] = true;
}
}
}