Pagini recente » Cod sursa (job #3001827) | Cod sursa (job #1914900) | Cod sursa (job #2540986) | Cod sursa (job #1504210) | Cod sursa (job #2379864)
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
int main()
{
int n,m,S,x,y,i;
in>>n>>m>>S;
vector <vector<int>> v(n+1);
vector <int> viz(n+1,n);
queue <int> Q;
for(i=0;i<m;i++)
{
in>>x>>y;
v[x].push_back(y);
}
Q.push(S);
viz[S]=0;
while(!Q.empty())
{
x=Q.front();
Q.pop();
for(auto i: v[x])
{
if(viz[i]==n)
{
Q.push(i);
viz[i]=viz[x]+1;
}
}
}
for(i=1;i<=n;i++)
{
if(viz[i]==n)
viz[i]=-1;
out<<viz[i]<<" ";
}
}