Pagini recente » Cod sursa (job #2588719) | Cod sursa (job #3171393) | Cod sursa (job #35173) | Cod sursa (job #2758999) | Cod sursa (job #2299013)
#include <fstream>
#include <iostream>
#include <list>
#include <queue>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod{
list<int> vecini;
} vf[100005];
queue<int>q;
int n,m,start,i,x,y,viz[100005];
void BFS(int v)
{
int x;
q.push(v);
viz[v]=1;
while(!q.empty())
{
x=q.front();
for(list<int>::iterator it=vf[x].vecini.begin();it!=vf[x].vecini.end();++it)
if(viz[*it]==0)
{
q.push(*it);
viz[*it]=viz[x]+1;
cout<<"fu";
}
q.pop();
}
}
int main()
{
fin>>n>>m>>start;
for(i=1;i<=m;i++)
{
fin>>x>>y;
vf[x].vecini.push_back(y);
}
for(i=1;i<=n;i++)
{
vf[i].vecini.sort();
vf[i].vecini.unique();
}
BFS(start);
for(i=0;i<n;i++)
{
fout<<viz[i]-1<<' ';
}
return 0;
}