Pagini recente » Cod sursa (job #541289) | Cod sursa (job #1821981) | Cod sursa (job #1649630) | Cod sursa (job #123383) | Cod sursa (job #1337101)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
const int NMAX = 100000;
vector<int> v[NMAX + 5];
int n,m,sol[NMAX + 5];
queue<int> coada;
void read()
{
in>>n>>m;
int a,b;
for(int i = 1 ; i <= n ; i++){
in>>a>>b;
v[a].push_back(b);
}
in.close();
}
void bfs()
{
sol[1] = 1;
coada.push(1);
while(!coada.empty()){
int k = coada.front();
for(int i = 0 ; i < v[k].size() ; i++){
if(!sol[v[k][i]]){
sol[v[k][i]] = sol[k] + 1;
coada.push(v[k][i]);
}
}
coada.pop();
}
}
void afis()
{
for(int i = 1 ; i <= n ; i++)
out<<sol[i]-1<<" ";
out.close();
}
int main()
{
read();
bfs();
afis();
return 0;
}