Cod sursa(job #2282655)
| Utilizator | Data | 14 noiembrie 2018 11:29:43 | |
|---|---|---|---|
| Problema | BFS - Parcurgere in latime | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.77 kb |
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
int n,m,s;
cin>>n>>m>>s;
s--;
vector<vector<int>>g(n);
for(int i=1;i<=m;i++)
{
int a,b;
cin>>a>>b;
a--;
b--;
g[a].push_back(b);
}
vector<int>ans(n,-1);
ans[s]=0;
queue<int>q;
q.push(s);
while(!q.empty())
{
int nod=q.front();
q.pop();
for(auto &nou:g[nod])
{
if(ans[nou]==-1)
{
ans[nou]=ans[nod]+1;
q.push(nou);
}
}
}
for(auto &x:ans)
{
cout<<x<<" ";
}
cout<<"\n";
return 0;
}
