Pagini recente » Cod sursa (job #1113621) | Cod sursa (job #3157445) | Cod sursa (job #916530) | Istoria paginii treapuri | Cod sursa (job #1700178)
# include <bits/stdc++.h>
using namespace std;
#define dimax 100010
vector <int> v[dimax];
queue <int>c;
int n,m,i,x,y,st,dist[dimax];
int main ()
{
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>st;
while(m--)
{
f>>x>>y;
v[x].push_back(y);
}
for(i=1;i<=n;i++)
dist[i]=dimax;
dist[st]=0;
c.push(st);
while(c.empty()==0)
{
int nod=c.front();
c.pop();
for(auto vecin:v[nod])
{
if(dist[vecin]>dist[nod]+1)
{
dist[vecin]=dist[nod]+1;
c.push(vecin);
}
}
}
for(i=1;i<=n;++i)
{
if(dist[i]==dimax)
g<<-1<<" ";
else g<<dist[i]<<" ";
}
return 0;
}