Pagini recente » Cod sursa (job #2599506) | Cod sursa (job #2851011) | Cod sursa (job #288758) | Cod sursa (job #1764911) | Cod sursa (job #741416)
Cod sursa(job #741416)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> v[100001];
queue<int> q;
bool visited[100001];
int main()
{
int n,m,s,x,y;
int drum[100001];
fin>>n>>m>>s;
for(int i=1;i<=n;i++)
drum[i]=-1;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
visited[s]=true;
q.push(s);
drum[s]=0;
while(!q.empty())
{
x=q.front();
for(int i=0;i<v[x].size();i++)
if(!visited[v[x][i]])
{
q.push(v[x][i]);
drum[v[x][i]]=drum[x]+1;
visited[v[x][i]]=true;
}
q.pop();
}
for(int i=1;i<=n;i++)
fout<<drum[i]<<' ';
fout<<'\n';
fin.close();
fout.close();
return 0;
}