Pagini recente » Cod sursa (job #2589110) | Cod sursa (job #2084631) | Cod sursa (job #691951) | Cod sursa (job #2754130) | Cod sursa (job #1035622)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
vector <int> v[100001];
queue <int> q;
int d[100001],N,S;
inline void Read()
{
int M,i,x,y;
ifstream fin("bfs.in");
fin>>N>>M>>S;
for(i=1;i<=M;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
fin.close();
}
inline void Solve()
{
int i,j,k;
q.push(S);
for(i=1;i<=N;i++)
d[i]=-1;
d[S]=0;
while(!q.empty())
{
j=q.front();
q.pop();
for(i=0;i<v[j].size();i++)
{
k=v[j][i];
if(d[k]<0)
{
d[k]=d[j]+1;
q.push(k);
}
}
}
}
int main()
{
int i;
Read();
Solve();
ofstream fout("bfs.out");
for(i=1;i<=N;i++)
fout<<d[i]<<" ";
fout.close();
return 0;
}