Cod sursa(job #3264848)
| Utilizator | Data | 24 decembrie 2024 18:08:37 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.76 kb |
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int> L[100005];
queue<int> q;
int n,m,x,y,viz[100005],c,s;
void bfs(int k)
{
q.push(k);
viz[k]=1;
while(!q.empty())
{
k=q.front();
for(auto i:L[k])
{
if(viz[i]==0)
{
viz[i]=viz[k]+1;
q.push(i);
}
}
q.pop();
}
}
int main()
{
cin>>n>>m>>s;
for(int i=1; i<=m; i++)
{
cin>>x>>y;
L[x].push_back(y);
}
viz[s]=1;
bfs(s);
for(int i=1; i<=n; i++)
{
if(viz[i]==0)
cout<<-1<<" ";
else
cout<<viz[i]-1<<" ";
}
}
